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

Posted

技术标签:

【中文标题】和尚:如何获取最后N条记录?【英文标题】:Monk: how to get the last N records? 【发布时间】:2015-04-29 08:10:03 【问题描述】:

我找不到记录在哪里。默认情况下,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 条记录?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

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);
    ...
);

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

【讨论】:

以上是关于和尚:如何获取最后N条记录?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用activerecord获取最后N条记录?

如何使用Java从mongodb获取最后插入的N条记录?

如何使用Java从mongodb获取最后插入的N条记录?

如何获取mysql中最后一条之前的最后一条记录?

Javascript - 如何从数组列表中获取最后一条记录? [复制]

如何从 Sqlite 获取最后一条记录?