2014-12-05 2 views
0

mongodb를 필터링하고 그룹화하는 데 문제가 있습니다. 나는 그것이 어떻게 작동하는지 이해하지 못했습니다. 이 쿼리의 예를 들어몽구스 그룹화 오류

:

Room.aggregate(
[{ 
    "$where": { "roomId" : myIdHere }, 
    "$group": { 
     "_id": '$mobileUser.genderType', 
     "genderTypeCount": { 
      "$sum": 1 
     } 
    } 
}] 

룸 모델 :

var roomModelSchema = mongoose.Schema({ 
    roomId: String, 
    mobileUser: { 
     facebookId: String, 
     email: String, 
     name: String, 
     photoUrl: String, 
     genderType: String, 
     birthday: Date, 
     city: String  
    }, 
    insertDate: Date 
}) 

내가 genderType에 의해 roomId 그룹으로 필터링하려면 어떻게해야합니까?

답변

1

대신 사용 $where$match, 그리고 자신의 개체로 각각의 파이프 라인 작업을 넣어 :

Room.aggregate([ 
    { "$match": { "roomId" : myIdHere } }, 
    { "$group": { 
     "_id": '$mobileUser.genderType', 
     "genderTypeCount": { 
      "$sum": 1 
     } 
    }} 
], function(err, result) {...}) 
+0

완벽! 고마워. 질문이 있는데, '파이프 라인'이라고 말하면이 용어를 관계형 데이터베이스와 어떻게 비교할 수 있습니까? 나는 그것을 과소 평가하려고 미쳐 가고있다. – Ren4n

+1

집계 파이프 라인 [여기] (http://docs.mongodb.org/manual/core/aggregation-introduction/#aggregation-pipelines)을 읽을 수 있습니다. – JohnnyHK