我有一个数据库,其中包含诸如one之类的文档。我想创建一个聚合,仅返回participants.stats.win = true and participants.championId = 57
处的文档。对于同一个参与者,我需要两个条件都成立。
[{$match: {
$and: [ { "participants.stats.win": {$eq: true} },
{ "participants.championId": { $eq: 57 } },
{ gameMode: {$eq: "CLASSIC"}}
]
}}, {$project: {
participants: {
$filter: {
input: "$participants",
as: "participant",
cond: {
$eq: ["$$participant.championId", 57 ]
}
}
}
}}, {$group: {
_id: null,
count: {
$sum: 1
}
}}]
这将返回给我一个文档,其中有partner.championId = 57,无论该参与者赢了还是输了游戏。