命令:
$inc 用来增加已有键的值,或者在键不存在的时候创建一个键,它只能修改整数型或浮点型,比如统计累加、投票.它键的值必须为数字,不能使用字符串、数组等其他值.
$set 用来指定一个键的值,如果这个键没有就创建它.有就修改.它还可以修改内嵌文档,甚至可以修改键的数据类型.
$unset 用来删除,将键完全删除.
$push 如果指定的键已经存在,它会向已有的数组末尾加入一个元素,要是没有就会创建一个数组.
$ne 如果一个值不在数组里面就把它加进去.
$addToSet 同上,有时候ne根本行不通,有些时候更适合用这个.它可以避免重复.
$each addToset和它组合起来可以添加多个不同的值,而用ne和push组合就不能实现.
$pop 可以从数组任何一端删除元素,{$pop : {key : 1}}1表示从末尾删除.-1表示从头部开始.
$pull 根据特定的条件来删除元素.它会将所有匹配的部分删掉.
$lt $lte 小,小于等于.
$gt $gte 大,大于等于.
$ne 表示不等于.它能用于所有类型的数据.
$in 可以用来查询一个键的多个值.
$nin 与之相反.
$or 更通用,用来完成多个键值的任意给定值.
$not 元条件句,可以用在任何其他条件之上.取模($mod)
$exists 用来条件判定键值是否已经存在.
$all 用来通过多个元素来匹配数组.
$size 可以用其查询制定长度的数组,size并不能与其他查询子句组合,但是这种查询可以通过在文档中添加一个size键的方式来实现.这样每次向指定数组添加元素的时候,同时增加size的值.不幸的是,这种技巧并不能与addToSet操作符同时使用.
$slice 返回数组的一个子集合.它也可以返回指定地方的指定条数.如果数组长度不够则返回指定地方之后的所有数据.另外,除非特别声明,否则使用slice时将返回文档中的所有键,这与其他的不太一样.
$elemMatch 它会限定条件进行分组,仅当需要对一个内嵌文档的多个键操作时才会用到.
$where 用它可以执行任意JavaScript作为查询的一部分,这就使得查询能做(几乎)任何事情.最典型的就是比较两个文档的键的值是否相等.一定要避免使用where.因为它在速度上要比常规查询慢很多,只有走投无路才考虑.
将常规查询作为前置过滤,与where组合使用可以不牺牲性能.如果可能的话,用索引根据非where子句进行过滤,where只用于对结果进行调优.
结论:
条件句是内层文档的键,而修改器则是外层文档的键.一个键可以有多个条件,但是一个键不能对应多个更新修改器.比如修改器文档不能同时含有$inc和$set.因为修改了两次了,但是对于查询条件句就没有这种限定.
分享到:
相关推荐
在处理文档更新时,除了完全替换整个文档之外,MongoDB 提供了一组原子性的更新修改器,这些修改器允许对文档的特定部分进行高效更新,确保数据的一致性。以下是几个主要的更新修改器的详细说明: 1. **$inc**: $...
Centos7下安装MongoDB Centos7下安装MongoDB是指在Centos7操作系统中安装和配置MongoDB数据库的...Centos7下安装MongoDB需要安装mongodb-org元数据包,配置yum源,安装MongoDB,创建数据目录,修改配置文件等步骤。
6. **脚本编辑器**:对于需要运行JavaScript脚本的场景,NoSQLBooster提供了一个集成的脚本编辑器,支持直接在界面上编写和执行MongoDB的shell命令和脚本。 7. **SSL连接**:为了确保数据传输的安全,NoSQLBooster...
1. **安装MongoDB驱动**:为了在C#中与MongoDB交互,我们需要先安装MongoDB的C#驱动程序,通常通过NuGet包管理器进行安装,包名是`MongoDB.Driver`。 2. **连接配置**:连接到MongoDB服务器时,需要提供主机名(或...
- `remove.bat`:这个批处理脚本可能用于从Windows服务管理器中卸载MongoDB服务。这通常会使用`sc delete`命令来删除服务条目。 6. **在Linux平台上启动MongoDB**: - `startMongoDB.sh`:这是针对Linux环境(如...
修改器是 MongoDB 中的一种特殊语法,用于局部更新操作。例如 `$set` 修改器用于指定一个键值对,如果存在键就进行修改不存在则进行添加。 `$inc` 修改器用于数字类型的数值进行加减操作。 `$unset` 修改器用于删除...
4. **重新启动MongoDB服务**:通过命令行或服务管理器重新启动MongoDB服务。 **注意事项:** - 如果删除`mongod.lock`后仍然无法启动MongoDB服务,这可能是因为其他潜在问题,比如配置文件设置不正确。 - 在某些...
在Thinkphp中使用MongoDB进行多条件查询时,需要对框架提供的驱动进行一定的修改以适应MongoDB的查询方式。 在Thinkphp中实现多条件查询时,可以使用框架提供的查询构建器(Query Builder),但是当涉及到MongoDB的...
4. 查询构建器:该工具通常包含一个可视化的查询构建器,帮助用户无需编写复杂的MongoDB查询语法就能执行查询操作。这使得非技术背景的用户也能轻松操作。 5. CRUD操作:支持创建(Create)、读取(Read)、更新...
对于Common Lisp这种功能强大的动态类型编程语言,`mongo-cl-driver`就是这样一款驱动器,它允许Common Lisp开发者无缝地连接到MongoDB数据库。 `mongo-cl-driver`是为Common Lisp设计的一个MongoDB客户端库,它的...
在 MacOSX 上安装 MongoDB,通常推荐使用 Homebrew 包管理器,这是一个非常方便的工具,用于安装和管理开发环境所需的各种软件。因此,“brew”在描述中出现,意味着我们将通过它来安装 MongoDB。以下是安装过程: ...
4. **查询构建器**:对于不熟悉 MongoDB 查询语法的用户,查询构建器是一个非常实用的功能。通过图形化界面,用户可以构建复杂的查询语句,而无需手动编写 MongoDB 的查询命令。 5. **索引管理**:可以创建、修改和...
5. **脚本编辑器**:内置脚本编辑器,支持编写和执行MongoDB命令,方便进行复杂操作。 6. **安全设置**:帮助用户配置MongoDB的权限和认证,确保数据安全性。 7. **性能监控**:实时显示MongoDB服务器的性能指标,...
本篇将详细介绍如何使用Java连接MongoDB,以及进行基本的数据操作:创建集合、添加文档、修改文档、查询文档和删除文档。 首先,为了连接MongoDB,我们需要引入MongoDB的Java驱动程序依赖。在Maven项目中,可以在...
3. **查询构建器**:NoSQL Manager包含一个强大的查询构建器,允许用户创建复杂的查询,包括聚合框架的操作,无需记忆复杂的MongoDB查询语法。 4. **索引管理**:支持创建、修改和删除MongoDB的索引,有助于优化...
NoSQLBooster是一款轻量级的MongoDB客户端,提供类似于MongoDB Shell的命令行界面,同时也具备图形化查询构建器。它支持SSH隧道,适用于远程数据库连接,且提供代码补全和查询执行历史,提高开发效率。 以上就是...
你可以添加、修改、删除字段,或者直接插入、更新、删除记录。 4. **查询构建器**:提供一个可视化的查询构建器,帮助用户创建复杂的查询语句,支持聚合框架,使得数据分析变得简单易行。 5. **数据生成器**:在...
7. 用户管理:通过MongoVUE,用户可以创建、修改和删除MongoDB的用户账户,设置权限,确保数据库的安全性。 8. 备份与恢复:MongoVUE支持对MongoDB数据库进行备份和恢复,这在灾难恢复和数据迁移时非常有用。 尽管...