操作符(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 },
} })