和尚:如何获取最后N条记录?

Monk: how to get the last N records?

我找不到记录此内容的位置。默认情况下,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条记录?

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

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

这个 returns 按日期排序的结果,然后我在客户端将它们切片 :

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

虽然我还在等待一个合适的方法来实现这个。

date 降序排序得到最后 N 条记录,然后在 docs 数组上调用 reverse() 将它们按升序排列:

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