1

在较早的一个问题中,我发现 MongoDB 对每个$or语句执行多个查询,并且重复项在后处理中被丢弃。查询是如何$and实现的?

是否有某种优化,如果第一条语句为 FALSE,则文档被丢弃?

4

1 回答 1

2

$and 语句与 $or 语句有很大不同。由于 $and 在定义上具有限制性,因此 $and 表达式的任何单个子句都可以用作单个查询来获取文档以进行进一步评估。MongoDB 检查可用索引以优化并选择要运行的查询。然后根据剩余子句的 AND 评估每个结果。正如您可能猜到的那样,这比 $or 语句要容易得多。

于 2012-05-21T18:17:21.560 回答