mongo多表关联分组查询
时间: 2023-11-01 18:08:53 浏览: 84
好的,针对您的问题,我可以给出以下思路:
1. 使用 $lookup 进行多表关联,将需要关联的表连接起来。
2. 使用 $unwind 将连接后的数组展开,方便后续的分组操作。
3. 使用 $group 进行分组操作,根据需要进行聚合计算。
具体实现可以参考以下代码:
```
db.collection.aggregate([
{
$lookup: {
from: "other_collection",
localField: "field_in_this_collection",
foreignField: "field_in_other_collection",
as: "joined_docs"
}
},
{
$unwind: "$joined_docs"
},
{
$group: {
_id: "$group_field",
count: { $sum: 1 },
sum: { $sum: "$joined_docs.field_to_sum" }
}
}
])
```
其中,`collection` 表示需要进行查询的集合名称,`other_collection` 表示需要关联的集合名称,`field_in_this_collection` 表示当前集合中需要关联的字段,`field_in_other_collection` 表示需要关联的集合中的字段,`joined_docs` 表示连接后的文档数组。`group_field` 表示需要进行分组的字段,`count` 和 `sum` 分别表示需要进行计数和求和的字段。
阅读全文