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"]}}) |
逻辑查询操作符
操作符 | 解释 | 使用示例 |
---|
$and | 与 | db.mytest.find({and: [{age: {lt: 23}},{type: 1}]}) |
$or | 或 | db.mytest.find({or: [{age: {lt: 23}},{type: 1}]}) |
$not | 非 | db.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)。
数组查询操作符
操作符 | 解释 | 使用示例 |
---|
$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操作符时,限制所更新数组的大 | |
$sort | push操作符时,对数组中的元素重新排序 | |
按位更新操作符
操作符 | 解释 | 使用示例 |
---|
$bit | 执行按位与、或、异或更新整数 | |