概述
匹配符
匹配符可以指定匹配条件,使查询仅返回符合条件的记录。它还能跟函数操作配合使用,以实现更复杂的匹配操作。
匹配符列表如下:
匹配符 | 描述 | 示例 |
---|---|---|
$gt | 大于 | db.foo.bar.find( { age: { $gt: 20 } } ) |
$gte | 大于等于 | db.foo.bar.find( { age: { $gte: 20 } } ) |
$lt | 小于 | db.foo.bar.find( { age: { $lt: 20 } } ) |
$lte | 小于等于 | db.foo.bar.find( { age: { $lte: 20 } } ) |
$ne | 不等于 | db.foo.bar.find( { age: { $ne: 20 } } ) |
$in | 集合内存在 | db.foo.bar.find( { age: { $in: [ 20, 21 ] } } ) |
$nin | 集合内不存在 | db.foo.bar.find( { age: { $nin: [ 20, 21 ] } } ) |
$all | 全部 | db.foo.bar.find( { age: { $all: [ 20, 21 ] } } ) |
$and | 与 | db.foo.bar.find( { $and: [ { age: 20 }, { name: “Tom” } ] } ) |
$not | 非 | db.foo.bar.find( { $not: [ { age: 20 }, { name: “Tom” } ] } ) |
$or | 或 | db.foo.bar.find( { $or: [ { age: 20 }, { name: “Tom” } ] } ) |
$type | 已废弃 | 无 |
$exists | 存在 | db.foo.bar.find( { age: { $exists: 1 } } ) |
$elemMatch | 元素匹配 | db.foo.bar.find( { content: { $elemMatch: { age: 20 } } } ) |
$+标识符 | 数组元素匹配 | db.foo.bar.find( { “array.$2”: 10 } ) |
$size | 已废弃 | 无 |
$regex | 正则表达式 | db.foo.bar.find( { str: { $regex: ‘dh, * fj’, $options:’i’ } } ) |
$field | 字段匹配 | db.foo.bar.find( { “t1”: { “$field”: “t2” } } ) |
$mod | 取模匹配 | db.foo.bar.find( { “age”: { “$mod”: [ 5, 3 ] } } ) |
$et | 相等匹配 | db.foo.bar.find( { “id”: { “$et”: 1 } } ) |
$isnull | 选择集合中指定字段是否为空或不存在 | db.foo.bar.find( { age: { $isnull: 0 } } ) |
数组属性操作
数组属性操作 | 描述 | 示例 |
---|---|---|
$expand | 数组展开成多条记录 | db.foo.bar.find( { a: { $expand: 1 } } ) |
$returnMatch | 返回匹配的数组元素 | db.foo.bar.find( { a: { $returnMatch: 0, $in: [ 1, 4, 7 ] } } ) |