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

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 に答える