请查看此链接以查询我的问题。 http://docs.mongodb.org/manual/core/aggregation-pipeline-optimization
它表示优化将投影应用于头部并仅返回_id&量。现在投影后,状态字段上有匹配。但是项目的结果没有那些字段,那么它如何匹配结果并过滤它们。
答案 0 :(得分:0)
你的实际问题有点“抽象”,但为了验证这一点,你真正想要为最佳 优化做的是$match
您在管道第一个阶段的条款:
db.collection.aggreagte([
// Match first
{ "$match": { "status": true } },
// Rest of the pipeline
])
主要的“原因”就是实际上 地址第一阶段的索引。如果您在管道中稍后,那么您可以不。
因此,请尝试以这种方式进行优化,始终。