請查看此鏈接以查看我的問題。 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