i have twice nested schema:
mongoose.model('team', mongoose.schema( {  players : [{      trikots : [{         isnew : boolean,         color : string     }]  }] })   for now, query looks this:
team.aggregate()         .match({'_id' : new objectid(teamid)})         .unwind('players')         .unwind('players.trikots')         .match({'players.trikots.isnew' : 'red', 'players.trikots.isnew' : true})         .exec(sendback);   but have 1 team object, contains players array. how can achieve that?
use group on _id $push operator return players array.
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);   if want other field included in final doucment add _id field during group operation.
.group({'_id':{'_id':'$_id','some_other_field':'$some_other_field'},'players': {'$push': '$players'}})      
Comments
Post a Comment