我有一個在MongoDB中的'報告'集合。該集合包含報告所屬用戶的ObjectId。我目前正在進行彙總,以便我可以按用戶分組報告。Mongodb聚合'加入'
db.reports.aggregate(
{
$group: {
_id: "$user",
stuff: {
$push: {
things: {
properties: "$properties"
}
}
}
}
},
{
$project: {
_id: 0,
user: "$_id",
stuff: "$stuff"
}
}
)
這給了我一個用戶id和報告'東西'的數組。而不是隻是userId我想知道如果我可以形成聚合,而不是隻是userId我可以擊中用戶集合並返回有關該用戶的更多信息。
這可能嗎?我使用貓鼬作爲ORM,但是看着貓鼬的文檔,聚合看起來是對mongodb聚合函數的直接傳遞。不要以爲我可以利用貓鼬的填充,因爲聚合不處理模式,但我可能是錯的。
最後報告是計算機生成的,每個用戶可能有數百萬。這使我無法將報告存儲在包含用戶集合的數組中。
請更新您的答案,包括$ lookup,這是連接的mongodb方式 – PirateApp