【发布时间】:2023-02-07 03:51:57
【问题描述】:
我正在开发一个简单的程序,通过 n 个玩家来计算特殊单位的总数。
我有类似于此(简化)的文档,其中数组 rosterUnits 的长度可以是 0 到 7。总共有 7 个特殊单元。我需要知道每个单位球员中有多少人在花名册中。
{
{
_id: ObjectId(...),
member: {
rosterUnits: [ "Unit1", "Unit2", "Unit3", "Unit4"]
}
},
{
_id: ObjectId(...),
member: {
rosterUnits: [ "Unit1", "Unit3"]
}
},
...
}
预期结果将是这样的:
{
_id: ...
result: [
{
name: "Unit1"
count: 2
},
{
name: "Unit2"
count: 1
},
{
name: "Unit3"
count: 2
},
...
{
name: "Unit7"
count: 0
}
]
}
如何使用聚合管道实现此目的?
【问题讨论】:
-
你试过什么?这似乎是
$group最常见和最基本的用例
标签: arrays mongodb aggregation-framework