对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

$and(表达式操作符)

$and

计算一个或多个表达式,如果所有表达式均为true true或在无参数表达式的情况下运行,则返回 。否则,$and 将返回false

$and 事务语法:

{ $and: [ <expression1>, <expression2>, ... ] }

有关表达式的更多信息,请参阅表达式

除了false 布尔值之外,$and falsenull0undefined还会将以下值计算为 :$and 、 和 值。 将所有其他值计算为true ,包括非零数值和数组。

例子
结果

{ $and: [ 1, "green" ] }

true

{ $and: [ ] }

true

{ $and: [ [ null ], [ false ], [ 0 ] ] }

true

{ $and: [ null, true ] }

false

{ $and: [ 0, true ] }

false

要允许查询引擎优化查询,$and 会按如下方式处理错误:

  • 如果提供给 $and 的任何表达式在单独求值时会导致错误,则包含该表达式的 $and 可能但不一定会导致错误。

  • 在提供给 $and 的第一个表达式之后提供的表达式可能会导致错误,即使第一个表达式的计算结果为 false

用这些文档创建示例 inventory 集合:

db.inventory.insertMany([
{ _id: 1, item: "abc1", description: "product 1", qty: 300 },
{ _id: 2, item: "abc2", description: "product 2", qty: 200 },
{ _id: 3, item: "xyz1", description: "product 3", qty: 250 },
{ _id: 4, item: "VWZ1", description: "product 4", qty: 300 },
{ _id: 5, item: "VWZ2", description: "product 5", qty: 180 }
])

此操作使用$and 操作符来确定qty 是否大于100 且小于250

db.inventory.aggregate(
[
{
$project:
{
item: 1,
qty: 1,
result: { $and: [ { $gt: [ "$qty", 100 ] }, { $lt: [ "$qty", 250 ] } ] }
}
}
]
)

操作会返回这些结果:

{ _id: 1, item: "abc1", qty: 300, result: false }
{ _id: 2, item: "abc2", qty: 200, result: true }
{ _id: 3, item: "xyz1", qty: 250, result: false }
{ _id: 4, item: "VWZ1", qty: 300, result: false }
{ _id: 5, item: "VWZ2", qty: 180, result: true }
给本页内容打分