Mongoose Aggregate: Begrenzen Sie die Anzahl der Datensätze in $ group

Ich versuche, diesen Satz mit der Mongoose Aggregate-Methode umzuwandeln:

"Wählen Sie für jeden Spieler mit einer bestimmten Spielberechtigung das Spiel aus, das am häufigsten gespielt wurde." Hier ist mein Spielschema:

gameSchema = new mongoose.Schema({
     game_name:{type:String},
     game_id:{type:String},
     oid:{type: String},
     number_plays:{type:Number,default:0},
    })
Game = mongoose.model('Game', gameSchema);

Hier ist der Code, den ich verwende:

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

Der obige Code gibt Folgendes zurück:

[ { _id: 'yyyy', plays: [ 10,4,5 ] },
  { _id: 'xxxxx',
    plays: [ 28, 14, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] } ]

Das Problem ist, dass es alle Spiele zurückgibt, nicht die, die meistens gespielt wurden. Meine Frage lautet also: Ist es möglich, die Felder in der $ group zu begrenzen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage