sql >> Database >  >> NoSQL >> MongoDB

Mongoose Aggregate:beperk het aantal records in $groep

U kunt $first gebruiken om waarden uit het eerste document in elke groep van een gesorteerde pijplijn te halen:

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();
});

Omdat je hebt gesorteerd op number_plays dalend in de voorgaande fase van de pijplijn, zal dit de waarden van elke oid . nemen groepsdocument met de hoogste number_plays .




  1. Hoe een schema van mangoest-database te krijgen die in een ander model is gedefinieerd?

  2. Dynamische toetsen na $groeperen op

  3. Spring data mongo paginering

  4. sorteer mongo-verzameling op basis van de score van onderliggende documenten