$and

在本页面

  • 例子

  • $and

    • 语法:{ $and: [ { <expression1> }, { <expression2> } , ... , { <expressionN> } ] }

$and对一个或多个表达式的 array 执行逻辑AND操作(e.g. <expression1><expression2>,etc.)并选择满足 array 中所有表达式的文档.$and operator 使用 short-circuit evaluation。如果是第一个表达式(e.g. <expression1> )评估为false, MongoDB 不会评估剩余的表达式。

注意
MongoDB 在指定逗号分隔的表达式列表时提供隐式AND操作。当必须在多个表达式中指定相同的字段或 operator 时,必须使用带有$and operator 的显式AND

例子

和多个表达式的查询指定相同的字段

考虑以下 example:

db.inventory.find( { $and: [ { price: { $ne: 1.99 } }, { price: { $exists: true } } ] } )

此查询将选择inventory集合中的所有文档,其中:

  • price字段 value 不等于1.99

  • price字段存在。

通过组合price字段的 operator 表达式,也可以使用隐式AND操作构造此查询。对于 example,此查询可以写为:

db.inventory.find( { price: { $ne: 1.99, $exists: true } } )

和多个表达式的查询指定相同的 Operator

考虑以下 example:

db.inventory.find( {
    $and : [
        { $or : [ { price : 0.99 }, { price : 1.99 } ] },
        { $or : [ { sale : true }, { qty : { $lt : 20 } } ] }
    ]
} )

此查询将选择所有文档:

  • price字段 value 等于0.991.99

  • sale field value 等于true qty field value 小于20

无法使用隐式AND操作构造此查询,因为它多次使用$or operator。

也可以看看
find(),update(),$ne,$exists,$set。