mongodb 常用操作符

关键词:mongodb,数据库操作符
描述:最近常用mongodb数据库,但是很多操作符不清楚或不知道,所有抽空根据手册整理下,以便于以后查阅。

最近常用mongodb数据库,但是很多操作符不清楚或不知道,所有抽空根据手册整理下,以便于以后查阅(基于3.4版本)

1.查询和投影操作符

1.1比较操作符

$eq

匹配字段值等于指定值的文档

微信截图_20190803093555.png

$gt

匹配字段值大于指定值的文档

微信截图_20190803093748.png

$gte

匹配字段值大于等于指定值的文档
微信截图_20190803093830.png

$lt

匹配字段值小于指定值的文档
微信截图_20190803094034.png

$lte

匹配字段值小于等于指定值的文档
微信截图_20190803094202.png

$ne

匹配字段值不等于指定值的文档,包括没有这个字段的文档
微信截图_20190803094244.png

$in

匹配字段值等于指定数组中的任何值
微信截图_20190803094328.png
字段值为数组类型时,数组中至少有一个元素在指定数组中
微信截图_20190803094410.png

$nin

字段值不在指定数组或者不存在
微信截图_20190803094449.png

字段值为数组类型时,数组中没有一个元素与指定数组中元素相等

1.2逻辑操作符

$or

文档至少满足其中的一个表达式
微信截图_20190803094710.png

$and

微信截图_20190803094755.png

$not

字段值不匹配表达式或者字段值不存在
微信截图_20190803094837.png

$nor

字段值不匹配所有的表达式的文档,包括那些不包含这些字段的文档
微信截图_20190803094914.png

1.3元素操作符

$exists

等于true时,字段存在,包括字段值为null的文档
等于false时,字段不存在
微信截图_20190803095226.png

$type

匹配字段值为指定数据类型的文档
微信截图_20190803095241.png

微信截图_20190803095252.png

举例如下:
微信截图_20190803095420.png

1.4评估操作符

$mod

匹配字段值被除有指定的余数的文档
微信截图_20190803095441.png

$regex

正则表达式可以匹配到的文档
微信截图_20190803095558.png

$text

针对创建了全文索引的字段进行文本搜索
微信截图_20190803095614.png

$where

可以通过js表达式或js函数来查询文档

1.5数组操作符

$all

字段值是包含所有指定元素的数组的文档
微信截图_20190803095746.png

举例如下:
微信截图_20190803100229.png

$elemMatch

数组字段至少一个元素满足所有指定查询条件的文档
微信截图_20190803100356.png

$size

匹配数组字段元素个数等于指定数量的文档
微信截图_20190803100405.png

1.6投影操作符

$ (projection)

限定查询结果中指定数组字段返回满足条件的第一个元素
举例如下:
微信截图_20190803100550.png

$elemMatch (projection)

限定查询结果中指定数组字段返回满足条件的第一个元素
举例如下:
微信截图_20190803100620.png

$slice (projection)

控制指定数组字段返回元素个数
微信截图_20190803100747.png

2.更新操作符

2.1字段更新

$inc

给一个字段增加指定值
微信截图_20190803100838.png

$mul

微信截图_20190803100921.png

$rename

微信截图_20190803101001.png

$setOnInsert

upsert为true时,有插入文档操作时插入指定字段值
微信截图_20190803101042.png

$set

微信截图_20190803101133.png

$unset

删除指定字段
微信截图_20190803101218.png

$min

指定值小于当前值则更新为指定值
微信截图_20190803101304.png

$max

指定值大于当前值则更新为指定值

微信截图_20190803101344.png

$currentDate

设置字段值为当前日期
指定值为true设置为当前日期, 或者{ $type: “timestamp” }或{ $type: “date” }的形式”timestamp”和”date”必须是小写的
微信截图_20190803101428.png

2.2数组更新

$

更新指定数组的第一个元素
微信截图_20190803101514.png

$addToSet

数组字段增加一个值
微信截图_20190803101557.png

$pop

删除数组字段中的第一个或最后一个元素
1.png

$pullAll

删除数组字段中所有指定值,如果指定值为数组,则删除匹配数组内的元素
2.png

$pull

符合条件的值将被删除
3.png

$pushAll

向数组中追加多个指定值
4.png

$push

向数组中追加值
5.png

$each

用于 $addToSet添加多个值到数组中
6.png
追加多个值到数组中
7.png

$slice

限定push操作时数组元素的个数 必须和each一起使用
8.png

$sort

与$each一起使用
9.png

$position

与$each一起使用
从0开始的索引值
10.png

3.聚合管道操作符

$project

管道中字段的增加、删除和重命名
11.png

$match

12.png

$limit

13.png

$skip

14.png

$unwind

文档按照数组字段进行拆分
举例如下:
15.png

$group

16.png
举例如下
17.png

$sort

18.png

$lookup

两个集合之间的关联
19.png

$count

20.png

相关推荐: