sql >> Databáze >  >> NoSQL >> MongoDB

Mongoose Aggregate :omezení počtu záznamů ve skupině $group

Můžete použít $first převzít hodnoty z prvního dokumentu v každé skupině seřazeného kanálu:

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

Protože jste seřadili podle number_plays sestupně v předchozí fázi kanálu, převezme hodnoty z každého oid dokument skupiny s nejvyšším number_plays .




  1. jarní data mongodb id mapování pole

  2. Jak zálohovat a obnovit ClusterControl

  3. redis Zdá se, že server ukončil spojení

  4. Jak se připojit k MongoDB z jiné třídy PHP?