操作符(Operators)
MongoDB
比较操作符
| 名称 |
描述 |
| $gt |
大于 |
| $gte |
大于等于 |
| $lt |
小于 |
| $lt |
小于等于 |
| $e |
相等 |
| $ne |
不相等 |
| $in |
与给出的数组中的某个值相同 |
| $nin |
给出的数组中无相同值 |
$e 和不使用操作符而直接赋值结果相同。
db.inventory.find({ qty: { "$in": [5, 14] } });
元素操作符
| 名称 |
描述 |
| $exists |
存在或不存在某字段 |
| $type |
某字段是指定类型 |
db.collection.find({ "mpaaRatind": { "$exist": false }}).count()
如果查找 <field>: null 会把不存在该字段的文档也当做结果,所以要使用 $exist 额外判断。
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 |
不满足表达式条件 |
db.movieDetails.find({ $or: [{"tomato.meter": { $gt: 95 }}, {"metacritic": { $gt: 88 }}]}, { _id: 0, title: 1 })db.inventory.find({{ $and: [{ price: { $ne: 1.99 } }, { price: { $exists: true } }] })db.inventory.find({ price: { $not: { $gt: 1.99 } } })db.inventory.find({ item: { $not: { $regex: /^p.*/ } } })db.inventory.find({ $nor: [{ price: 1.99 }, { sale: false }] })
数组操作符
| 名称 |
描述 |
| $all |
包含给出数组中的所有元素(不考虑顺序) |
| $size |
数组字段个数相同 |
| $elemMatch |
数组字段中某个元素符合给出的所有条件 |
db.data.find(sections: { $all: ["AG1", "MD1", "OA1"] })db.movieDetails.find(boxOffice: { $elemMatch: { country: "Germany", revenue: { $gte: 17 },} })