【发布时间】:2021-11-22 12:20:20
【问题描述】:
我有一个名为Param 的模型,它与另一个名为Port 的模型有关系。当我填充Param 模型时,我可以访问所有Port 属性。它有很多属性,但我只指出那些必要的:
//Port
{
username: 123556,
rxm_name: 'Name #2'
}
还有另一个不相关的集合Report,它具有以下属性:
//Report
{
username: 123556,
box_number: 4423
}
值得一提的是,Report 集合中有近 900.000 个文档。
box_number 不是唯一的,但 username 是唯一的。此外,Report 集合中可能存在来自Port 的一些username-s。
我使用聚合函数来计算所有不同的唯一 box_number-s。这将为每个box_number 获得username-s 的数量:
const totalUsers = await Report.aggregate([{
"$group": {
_id: {
"box_number": "$box_number",
},
count: {
$sum: 1
}
}
}]);
此查询返回以下内容:
[
{
_id: {
box_number: 38032
},
count: 273
},
// and so on..
]
现在我必须执行查询以链接 username、rxm_name 和 box_number。基本上,我必须显示每个box_number 中有多少username-s,并将它们按rxm_name 分组。我被困了几个小时,但我想不出这样的查询。我有什么遗漏的地方吗?
【问题讨论】:
标签: mongodb express mongoose aggregation-framework