MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Gruppieren Sie die Anordnung nach dem Abwickeln und Anpassen

Verwenden Sie Group auf _id mit $push Operator, um alle Player in ein Array zurückzugeben.

Team.aggregate()
        .match({'_id' : new ObjectId(teamId)})
        .unwind('players')
        .unwind('players.trikots')
        .match({'players.trikots.color' : 'red', 'players.trikots.isNew' : true})
        .group({'_id':'$_id','players': {'$push': '$players'}})
        .exec(sendBack);

Wenn Sie möchten, dass ein anderes Feld in das endgültige Dokument aufgenommen wird, fügen Sie es zu _id hinzu Feld während des Gruppenbetriebs.

.group({'_id':{'_id':'$_id','some_other_field':'$some_other_field'},'players': {'$push': '$players'}})