MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Mongoose Aggregate:giới hạn số lượng bản ghi trong nhóm $

Bạn có thể sử dụng $first để lấy các giá trị từ tài liệu đầu tiên trong mỗi nhóm của một đường dẫn được sắp xếp:

var allids = ['xxxxx','yyyy'];
Game.aggregate([
    {$match: {'oid': {$in:allids}}},
    {$sort: {'number_plays': -1}},
    {$group: {
        _id: '$oid', 
        game_name: {$first: "$game_name"}, 
        game_id: {$first: "$game_id"}, 
        number_plays: {$first:"$number_plays"}
    }}
], function(err,list){
    console.log(list);
    res.end();
});

Vì bạn đã sắp xếp theo number_plays giảm dần trong giai đoạn trước của đường dẫn, điều này sẽ lấy các giá trị từ mỗi oid tài liệu của nhóm có number_plays cao nhất .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để sử dụng giao dịch MongoDB bằng Mongoose?

  2. Chiếu trình điều khiển MongoDB C # $ elemMatch $

  3. MongoDB / Express - Cách chuyển đổi cơ sở dữ liệu sau khi kết nối qua connect ()

  4. LỖI EXTJS trong tệp bao gồm api.php trong thẻ tập lệnh

  5. Sự khác biệt giữa findOneAndUpdate và findOneAndReplace là gì?