2017-01-16 28 views
0

在對Mongo集合執行聚合操作後,我的最後一步是獲取數組結果的長度。現在我有兩個選擇:

使用一個更$group階段其_id等於null

db.col.aggregate([ 
    // ..., 
    { 
    $group: { 
     _id: null, 
     length: { $sum: 1}, 
    }, 
    }, 
]); 

或者使用.length方法:

db.col.aggregate([ 
    // ... 
]).length; 

他們都工作得很好,給我的預期結果。我只是想知道哪種方式在性能方面更好。你怎麼看?

+0

什麼是您的MongoDB服務器版本? – chridam

+0

@chridam我正在使用3.2 – Khang

回答

0

我會使用.length方法,因爲它可能是JS Array對象中的屬性(它可能取決於您的代碼使用的JS引擎)。

我相信使用$group會使mongo引擎處理所有的數據,然後計算它返回的文件數量,這會慢得多。

正如felix所說,您可以運行一個小基準並查看哪個選項更快。