在MongoDB中获取最后一个对象的最佳方式

问题描述:

我正在寻找最快的方法来获取最近的n插入到一个集合(在mongo中)的对象。在MongoDB中获取最后一个对象的最佳方式

其中一种方法是使用sortlimit,但对大数据集进行排序以获取少量对象并不是正确的方法。

如果一个新的对象可以被插入到集合的开头,然后只是通过使用limit我可以得到最后一个对象,那将是非常好的。

请注意,有时这些对象正在更新,也许扩大,这就是为什么我选择了mongo。

这样做的最佳方法是什么? (与MongoDB的,或者也许不是?)

最好的办法是

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

_id上有默认的索引,你不需要额外的定义指标。

使用.explain(),以了解您的查询

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

如果你想获得最后的6个文档,上面的查询扫描仅6 + 1文件返回你的结果是尽可能最佳的性能。