유형이 지정된 모음을 통해 집계하려고합니다. 유형이 foo는 경우 유형이 사용자에 의해 나는 그룹에 원하는 바 경우 나는 필드 저자에 의해 그룹으로합니다.MongoDb는 값에 따라 두 필드로 그룹화하고 그룹화합니다.
이 모든 것이 하나의 쿼리에서 발생해야합니다.
예 데이터 : 유형 바 경우
{
"_id": 1,
"author": {
"someField": "abc",
},
"type": "foo"
}
{
"_id": 2,
"author": {
"someField": "abc",
},
"type": "foo"
}
{
"_id": 3,
"user": {
"someField": "abc",
},
"type": "bar"
}
이 사용자 필드는 존재한다.
그래서 기본적으로 ... $or
으로 표현하려고했습니다.
function() {
var results = db.vote.aggregate([
{ $or: [ {
{ $match : { type : "foo" } },
{ $group : { _id : "$author", sumAuthor : {$sum : 1} } } },
{ { $match : { type : "bar" } },
{ $group : { _id : "$user", sumUser : {$sum : 1} } }
} ] }
]);
return results;
}
누구에게 좋은 해결책이 있습니까?
내가 필요한 것은 아닙니다. 모든 저자 resp에 대한 문서가 필요합니다. 사용자는 그들의 합계가 – koengsen
@koengsen 정도면 충분합니다. 나는 주로 제시된 데이터를 기반으로 단 하나의 문서로 귀결되었을 샘플을보고있었습니다. 저것과 당신은 총계를 요구하고있는 것처럼 보였습니다. –