다른 쿼리에 대한 필요가 없습니다, 당신은 여전히 같은 집계 작업을 실행 할 수 있지만, 이번에는 user
에 가입 파이프 왼쪽을 할 수있는 이전 $group
파이프 라인의 결과를 $lookup
연산자를 사용하는 다른 파이프 라인을 추가 컬렉션 :
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
두 개의 다른 테이블을 동시에 쿼리 하시겠습니까? –