[关闭]
@Dale-Lin 2019-05-31T14:02:43.000000Z 字数 1236 阅读 616

操作符(Operators)

MongoDB


比较操作符

名称 描述
$gt 大于
$gte 大于等于
$lt 小于
$lt 小于等于
$e 相等
$ne 不相等
$in 与给出的数组中的某个值相同
$nin 给出的数组中无相同值

$e 和不使用操作符而直接赋值结果相同。

  1. db.inventory.find({ qty: { "$in": [5, 14] } });

元素操作符

名称 描述
$exists 存在或不存在某字段
$type 某字段是指定类型
  1. db.collection.find({ "mpaaRatind": { "$exist": false }}).count()

如果查找 <field>: null 会把不存在该字段的文档也当做结果,所以要使用 $exist 额外判断。

  1. db.movies.find({ viewerRating: { "$type": "int" } })
类型 别名
Double "double"
String "string"
Object "object"
Array "array"
Binary data "binData"
Undefined(废除) 'undefined'
ObjectID "objectId"
Boolean "bool"
Date "date"
null "null"
Regular Expression "regex"
Javascript "javascript"
32-bit integer "int"
64-bit integer "long"
Timestamp "timestamp"
Decimal128 "decimal"
Min key "minKey"
Max key "maxKey"

逻辑操作符

直接使用

名称 描述
$or 满足数组内任一条件
$and 满足数组内所有条件

某字段使用

名称 描述
$nor 不满足数组内任一条件
$not 不满足表达式条件
  1. db.movieDetails.find({ $or: [{"tomato.meter": { $gt: 95 }}, {"metacritic": { $gt: 88 }}]}, { _id: 0, title: 1 })
  2. db.inventory.find({{ $and: [{ price: { $ne: 1.99 } }, { price: { $exists: true } }] })
  3. db.inventory.find({ price: { $not: { $gt: 1.99 } } })
  4. db.inventory.find({ item: { $not: { $regex: /^p.*/ } } })
  5. db.inventory.find({ $nor: [{ price: 1.99 }, { sale: false }] })

数组操作符

名称 描述
$all 包含给出数组中的所有元素(不考虑顺序)
$size 数组字段个数相同
$elemMatch 数组字段中某个元素符合给出的所有条件
  1. db.data.find(sections: { $all: ["AG1", "MD1", "OA1"] })
  2. db.movieDetails.find(boxOffice: { $elemMatch: {
  3. country: "Germany",
  4. revenue: { $gte: 17 },
  5. } })
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注