请查看此链接以查看我的问题。 http://docs.mongodb.org/manual/core/aggregation-pipeline-optimization。Mongo Aggregation Framework中的投影优化
它说优化将投影应用到头部并返回_id &的数量。现在在投影之后,状态字段有匹配。但是项目结果没有这些字段,那么结果如何匹配并过滤它们。
请查看此链接以查看我的问题。 http://docs.mongodb.org/manual/core/aggregation-pipeline-optimization。Mongo Aggregation Framework中的投影优化
它说优化将投影应用到头部并返回_id &的数量。现在在投影之后,状态字段有匹配。但是项目结果没有这些字段,那么结果如何匹配并过滤它们。
您实际的问题是有点“抽象”,但验证点,你真的想为最好优化做什么是$match
你的条件在管道的第一阶段:
db.collection.aggreagte([
// Match first
{ "$match": { "status": true } },
// Rest of the pipeline
])
主要“理性”因为这是你可以实际上adresss与第一阶段的指标。如果你在后面正在管道中,那么你可以而不是。
所以试着用这种方法优化,总是。
仔细阅读:“优化阶段将投影应用于管道的头部,使得只有_id和金额字段在$ match阶段返回到生成的文档中。” – Sikorski