我无法找到记录的位置。默认情况下,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个最后插入的记录?
答案 0 :(得分:2)
按date
降序排序以获取最后N条记录,然后在docs
数组上调用reverse()
以按升序排列它们:
collection.find({}, {sort: {date: -1}, limit: 8}, function(e, docs){
if (e) return next(e);
res.send(docs.reverse());
});
答案 1 :(得分: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);
...
});
我仍在等待实现这一目标的正确方法。