0

我找不到记录在哪里。默认情况下,find() 操作将从头开始获取记录。

router.get('/chat/get-messages', function(req, res) {
    var db = req.db;
    var collection = db.get('chatMessages');
    collection.find({},{'limit':8},function(e,docs){
        if (e) return next(e);
        res.send(docs)
    });
});

如何获取最后插入的 N 条记录?

4

2 回答 2

3

降序排序date得到最后N条记录,然后调用数组reverse()docs升序放回:

collection.find({}, {sort: {date: -1}, limit: 8}, function(e, docs){
    if (e) return next(e);
    res.send(docs.reverse());
});
于 2015-02-26T21:29:56.863 回答
0

好的,我找到了我想做的解决方法。

collection.find({},{sort: {"date": 1}},function(e,docs){
    if (e) return next(e);
    res.send(docs)
});

这将返回按日期排序的结果,然后我在客户端对它们进行切片:

$.getJSON( '/chat/get-messages', function( data ) {
    data=data.slice(data.length -8, data.length);
    ...
});

不过,我仍在等待一种适当的方法来实现这一目标。

于 2015-02-26T21:15:12.167 回答