2014-12-13 93 views
1

我正在尋找最快的方法來獲取最近的n插入到一個集合(在mongo中)的對象。在MongoDB中獲取最後一個對象的最佳方式

其中一種方法是使用sortlimit,但對大數據集進行排序以獲取少量對象並不是正確的方法。

如果一個新的對象可以被插入到集合的開頭,然後只是通過使用limit我可以得到最後一個對象,那將是非常好的。

請注意,有時這些對象正在更新,也許擴大,這就是爲什麼我選擇了mongo。

這樣做的最佳方法是什麼? (與MongoDB的,或者也許不是?)

回答

3

最好的辦法是

db.collection.find().sort({_id : -1}).limit(n) 

_id上有默認的索引,你不需要額外的定義指標。

使用.explain(),以瞭解您的查詢

db.collection.find().sort({_id : -1}).limit(n).explain() 

如果你想獲得最後的6個文檔,上面的查詢掃描僅6 + 1文件返回你的結果是儘可能最佳的性能。

相關問題