gpt4 book ai didi

mongodb - 展开和匹配后的组数组

转载 作者:IT老高 更新时间:2023-10-28 13:31:50 35 4
gpt4 key购买 nike

我有一个嵌套两次的架构:

mongoose.model('Team', mongoose.Schema(
{
players : [{
trikots : [{
isNew : Boolean,
color : String
}]
}]
})

目前,我的查询如下所示:

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

但我想要一个 Team 对象,它包含所有玩家作为一个数组。我怎样才能做到这一点?

最佳答案

_id 上使用 Group$push运算符将所有玩家返回到一个数组中。

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

如果您希望任何其他字段包含在最终文档中,请在组操作期间将其添加到 _id 字段。

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

关于mongodb - 展开和匹配后的组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30119575/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com