find 查询条件
操作符 | 含义 | 式例 |
---|---|---|
$ lt | < | db.user.find({“age”:{“$ lt”:18}}) |
$ lte | <= | db.user.find({“age”:{“$ lte “:18}}) |
$ gt | > | db.user.find({“age”:{“$ gt “:18}}) |
$ gte | >= | db.user.find({“age”:{“$ gte”:18}}) |
$ eq | = | db.user.find({“age”:{“$ eq”:18}}) |
$ ne | != | db.user.find({“age”:{“$ ne”:18}}) |
$ in | in | db.user.find({“age”:{“$ in”:18}}) |
$ nin | not in | db.user.find({“age”:{“$ nin”:18}}) |
$slice
操作符 | 含义 | 式例 |
---|---|---|
$slice | 控制查询返回的数组的项数 | db.user.find( {}, { comments: { $slice: [ 20, 10 ] } } ) |
聚合
aggregate
处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。有点类似sql语句中的 count(*)
官方文档
project
MongoDB的聚合管道将MongoDB文档在一个管道处理完毕后将结果传递给下一个管道处理。管道操作是可以重复的
修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档
官方文档
unwind
将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。
官方文档
filter
根据指定的条件选择一个数组的子集。返回仅包含与条件匹配的元素的数组。返回的元素按原始顺序排列。
官方文档
cond
计算布尔表达式以返回两个指定的返回表达式中的一个
官方文档
lookup
执行左连接到一个集合(unsharded),必须在同一数据库中
{
$lookup:
{
from: <collection to join>,
localField: <field from the input documents>,
foreignField: <field from the documents of the "from" collection>,
as: <output array field>
}
}
操作符 | 含义 |
---|---|
from | 右集合,指定在同一数据库中执行连接的集合。此集合不能shared分片 |
localField | 指定左集合(db.collectionname)匹配的字段。如果左集合不包含localField,$lookup 视为null值来匹配。 |
foreignField | 指定from集合(右集合)用来匹配的字段。如果集合不包含该字段,$lookup 视为null值来匹配。 |
as | 指定要添加到输入文档的新数组字段的名称。新的数组字段包含from集合中匹配的文档。如果在文档中指定的名称已经存在,现有的领域覆盖。 |
addFields
官方文档
将新字段添加到文档
map
表达式应用于数组中的每个项目并返回一个包含应用结果的数组。
官方文档
setIntersection
接受两个或更多数组并返回一个包含出现在每个输入数组中的元素的数组
官方文档
size
计数并返回数组中项目的总数。
官方文档
mergeObjects
将多个文档合并为一个文档
官方文档
divide
将一个数字除以另一个数字并返回结果。将参数传递给数组中的$ divide。
官方文档
multiply
将数字相乘并返回结果。将参数传递给数组中的$ multiply。
官方文档
查看集合主键盘
db.users.getIndexes()