0

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

因此,例如,使用如下函数调用:

getHistory(start, count)

我可以提供:

getHistory("a123", 10)

这将在 'id="a123"` 的记录之前返回 10 条记录。诀窍是 ID 是 GUID,所以我不能仅仅基于它向后递增。

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

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

1 回答 1

1

未经测试,但以下内容应该可以工作(在猫鼬中):

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

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

于 2013-10-19T19:41:55.703 回答