跳至主要內容

MongoDB 操作符

zhengcog...大约 5 分钟数据库NoSQL

比较操作符

操作符解释使用示例
$eq等于db.mytest.find({age:{$eq: 23}})
$ne不等于db.mytest.find({age:{$ne: 23}})
$gt大于db.mytest.find({age:{$gt: 23}})
$gte大于等于db.mytest.find({age:{$gte: 23}})
$lt小于db.mytest.find({age:{$lt: 23}})
$lte小于等于db.mytest.find({age:{$lte: 23}})
$in包含于db.mytest.find({status:{$in: ["A","D"]}})
$nin不包含于db.mytest.find({status:{$nin: ["A","D"]}})

逻辑查询操作符

操作符解释使用示例
$anddb.mytest.find({and: [{age: {lt: 23}},{type: 1}]})
$ordb.mytest.find({or: [{age: {lt: 23}},{type: 1}]})
$notdb.mytest.find({age: {not: {lt: 23}}})
$nor与任何一个条件都不匹配db.mytest.find({nor: [{age: {lt: 23}},{name:"abc"}]})

元素查询操作符

操作符解释使用示例
$exists匹配文档中的某个字段是否存在db.mytest.find( { name : { $exists: false } } )
$type选择某个字段为某种特定类型的文档db.mytest.find( { name : { $type: 10 } } )

评估查询操作符

操作符解释使用示例
$expr允许在查询中使用聚合函数
$jsonSchema校验文档是否与给定的JSON格式一致
$mod对数值类型字段进行取模运算
$regex通过正则表达式筛选文档
$text执行文本搜索
$where通过JavaScript表达式匹配文档

地理空间操作符

官方文档open in new window

默认使用 EPSG:4326 作为默认坐标参考系统 (CRS)。

操作符解释使用示例
$geoIntersects查询与指定的GeoJSONopen in new window几何形状相交的几何形状。2dsphereopen in new window索引支持 $geoIntersectsopen in new window
$geoWithin查询与指定的GeoJSONopen in new window几何重叠的几何open in new window。该2dsphereopen in new window2Dopen in new window指标支持 $geoWithinopen in new window
$near(平面上定圆形,查询该圆形内的数据)返回点附近的地理空间对象。需要地理空间索引。该2dsphereopen in new window2Dopen in new window指标支持 $nearopen in new window
$nearSphere(球面上定圆形,查询该圆形内的数据)返回球体上某个点附近的地理空间对象。需要地理空间索引。该2dsphereopen in new window2Dopen in new window指标支持 $nearSphereopen in new window
$box使用传统坐标对指定一个用于$geoWithinopen in new window查询的矩形框 。2Dopen in new window索引支撑 $box
$center使用坐标(经纬度)和距离第一 一个圆进行范围查询。2Dopen in new window索引支撑$centeropen in new window
$centerSphere在使用球形几何图形时,使用传统坐标或GeoJSON格式指定一个圆来进行$geoWithin查询(在球面上定义一个园,进行范围查询)。2dsphereopen in new window2Dopen in new window索引支持$centerSphereopen in new window
$geometry地理空间几何查询符, 指定GeoJSONopen in new window格式的类型后。可以配合用以下地理空间查询操作符 $geoWithin$geoIntersects$near$nearSphere$geometryopen in new window,进行地理查询.
$maxDistance指定最大距离以限制$near$nearSphere查询的结果。2dsphereopen in new window2Dopen in new window索引支持 $maxDistanceopen in new window
$minDistance指定最小距离以限制$near$nearSphereopen in new window查询的结果。2dsphere仅与索引一起使用。
$polygon指定要使用旧式坐标对进行 $geoWithin查询的面。2Dopen in new window索引支撑 $centeropen in new window

数组查询操作符

操作符解释使用示例
$all判断所有元素是否都满足指定的查询条件
$elemMatch遍历数组中的每个元素,如果元素的字段匹配所有的条件
$size筛选数组长度为size的文档

按位查询操作符

操作符解释使用示例
$bitsAllClear
$bitsAllSet
$bitsAnyClear
$bitsAnySet

投影操作符

操作符解释使用示例
$(projection)查看数组中第一个符合条件的元素
$elemMatch(projection)和数组操作符中的elemMatch等效
$slice(projection)指定查询结果的元素的数量

其他查询操作符

操作符解释使用示例
$comment添加一个注释作为查询谓语
$rand随机生成一个0到1之间的浮点数

字段更新操作符

操作符解释使用示例
$currentDate设置字段的值为当前日期
$inc在字段的值基础上自增,增量可以指定
$min仅更新此字段的值小于给定值的字段
$max仅更新此字段的值大于给定值的字段
$mul将此字段的值乘以一个给定的数值
$rename重命名一个字段
$set设置文档中字段的值
$setOnInsert在insert时,可以为新文档扩展更多field
$unset从文档中删除一个字段

数组更新操作符

操作符解释使用示例
$作为更新数组时符合查询条件的第一个元素的占位符
$[]作为更新数组时符合条件的全部元素的占位符
$[identifier]作为更新数组时所有条件都满足arrayFilters的全部元素的占位符
$addToSet仅当元素不存在时添加元素到数组
$pop删除第一个或者最后一个元素
$pull删除数组中所有符合查询条件的元素
$push添加一个元素到数组
$pullAll删除数组中所有元素
$echo在使用push和$addToSet操作符时,添加多个元素
$position在使用push操作符时,在指定位置添加元素
$slice在使用push操作符时,限制所更新数组的大
$sortpush操作符时,对数组中的元素重新排序

按位更新操作符

操作符解释使用示例
$bit执行按位与、或、异或更新整数
上次编辑于:
贡献者: Hyman
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.5