首页 文章

僧侣:如何获得最后的N条记录?

提问于
浏览
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个最后插入的记录?

2 回答

  • 2

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

    collection.find({}, {sort: {date: -1}, limit: 8}, function(e, docs){
        if (e) return next(e);
        res.send(docs.reverse());
    });
    
  • 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);
        ...
    });
    

    我仍在等待实现这一目标的正确方法 .

相关问题