概述

匹配符

匹配符可以指定匹配条件,使查询仅返回符合条件的记录。它还能跟函数操作配合使用,以实现更复杂的匹配操作。

匹配符列表如下:

匹配符描述示例
$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 ] } } )
$anddb.foo.bar.find( { $and: [ { age: 20 }, { name: "Tom" } ] } )
$notdb.foo.bar.find( { $not: [ { age: 20 }, { name: "Tom" } ] } )
$ordb.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 ] } } )