• 概述
    • 匹配符

    概述

    匹配符

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

    匹配符列表如下:

    匹配符描述示例
    $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 ] } } )