我在 mongodb 中有一个“报告”集合。该集合包含报表所属用户的 ObjectId。我目前正在做一个汇总,以便我可以按用户对报告进行分组。
db.reports.aggregate(
{
$group: {
_id: "$user",
stuff: {
$push: {
things: {
properties: "$properties"
}
}
}
}
},
{
$project: {
_id: 0,
user: "$_id",
stuff: "$stuff"
}
}
)
这给了我一组用户 ID 和报告“东西”。我想知道的不仅仅是 userId,我是否可以形成聚合,以便我可以点击 users 集合并返回有关用户的更多信息,而不仅仅是 userId。
那可能吗?我使用 mongoose 作为 ORM,但是查看 mongoose 文档,聚合看起来是直接通过 mongodb 的聚合函数。不要认为我可以利用 mongoose 的填充,因为聚合不处理模式,但我可能是错的。
最后报告是计算机生成的,每个用户可能有数百万。这使我无法将报告与用户集合一起存储在数组中。