無需另一個查詢,你仍然可以運行相同的總操作,但這次加入另一個管道,它使用$lookup
操作該管道從以前$group
管道進行左結果加入的user
收藏:
db.table_name.aggregate([
{
"$group": {
"_id": "$userId",
"avgRating": { "$avg": "$rating" }
}
},
{
"$lookup": {
"from": "user",
"localField": "_id",
"foreignField": "_id",
"as": "users"
}
}
])
如果您的MongoDB的版本不支持$lookup
OPERAT或者,那麼您將需要兩個查詢,運行如下:
var cursor = db.table_name.aggregate([
{
"$group": {
"_id": "$userId",
"avgRating": { "$avg": "$rating" }
}
}
]);
var results = cursor.map(function(doc){
var user = db.users.findOne({ "_id": doc._id })
return {
user: user,
avgRating: doc.avgRating
};
});
printjson(results);
我們可以看到您的疑問,編輯到問題中,並格式化很好嗎?我從你的問題中刪減了一些並不直接相關的材料,請注意[請求的緊急程度在這裏不受歡迎](http://meta.stackoverflow.com/q/326569)。 – halfer
你想同時查詢兩個不同的表嗎? –