带有Node的MongoDB,设置起始点并选择有限的反向记录数

时间:2013-10-19 19:17:44

标签: node.js mongodb

我使用mongo作为我的数据存储,用于发送的消息列表。每条消息都有一个id,我希望能够做到的(尽可能高效)是在提供的n反向开始之前返回id个结果。

因此,例如,使用类似函数调用:

getHistory(start, count)

我可以提供:

getHistory("a123", 10)

哪个会在记录之前返回10条记录,其中'id =“a123”`。诀窍是ID是GUID,因此我不能仅仅基于此向后增加。

这是我到目前为止所做的,并没有从正确的位置开始:

var cursor = collection.find({id: id}).sort({timestamp: -1}).limit(10)

1 个答案:

答案 0 :(得分:1)

未经测试,但以下行中的内容应该有效(在mongoose中):

collection.find({_id: {$lt: start}}).sort({_id: -1}).limit(10);

这应该在开始id之前找到所有元素,反转顺序并获得前10个。换句话说,在开始之前的最后10个。