https://www.mongodb.com/docs/manual/reference/operator/projection/elemMatch/如果该字段有索引,$elemMatch操作符是否会在$projection期间使用它?
oyjwcjzk1#
否,$project阶段不会使用索引。索引用于定位与查询匹配的文档,而无需读取整个集合。$project stage用于对管道中已经存在的文档进行变异,因此它永远不会从集合中检索文档。如果管道从$project阶段开始,查询执行器将在投影之前添加隐式集合扫描(实际上是{$match: {}})。
{$match: {}}
1条答案
按热度按时间oyjwcjzk1#
否,$project阶段不会使用索引。
索引用于定位与查询匹配的文档,而无需读取整个集合。
$project stage用于对管道中已经存在的文档进行变异,因此它永远不会从集合中检索文档。
如果管道从$project阶段开始,查询执行器将在投影之前添加隐式集合扫描(实际上是
{$match: {}}
)。