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

时间:2014-12-13 12:01:54

标签: mongodb

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

一种方法是使用sortlimit,但是为了获得少量对象而对大型数据集进行排序并不是正确的方法。

如果可以在集合的开头插入新对象,然后只使用limit,我就可以获得最后的对象。

请注意,有时这些对象正在更新,并且可能会扩展,这就是我选择mongo的原因。

最好的方法是什么? (使用MongoDB,或许不是?)

1 个答案:

答案 0 :(得分:3)

最好的方法是

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

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

使用.explain()查找您的查询

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

如果你想获得最后6个文件,上面的查询只扫描6 + 1个文件,以便返回你的结果,这是最好的表现。