2014-02-22 3 views
1

질문이 있습니다. mongo 집계 모듈의 특정 행에 합계를 만들려면 어떻게해야합니까?합계 금액이 포함 된 몽고 집계

내 문서는 다음과 같습니다

{ 
    "_id" : "315" 
    "city" : "Dallas",  
    "population" : 3400, 
    "state" : "Unknown" 
} 

어떻게 국가와 계산/합계 인구를 기반으로 집계를 만들 수 있습니까? Y이 시도했지만 뭔가 잘못입니다 :

db.mydb.aggregate([{"$group":{"$state":"$state", "population":$sum}}]) 

답변

2

당신은 문서를 당신의 "인구"항목을 참조하지 않습니다 집계 그룹에서 "_id"와 "인구"를 지정해야합니다, 그것은 결과 항목을 의미합니다. 따라서 다음과 같이해야합니다.

db.mydb.aggregate([ 
    {"$group":{"_id":"$state", "populationresult":{$sum:"$population"}}} 
]) 

도움이되기를 바랍니다.

+1

"해야 함"에서 ** 반드시 **로 변경하십시오. 그것은 ** 필수 **입니다. 철자를 수정하십시오. 또한 일반적인 문서 용어로서 질문에 사용 된 것과 동일한 "콜렉션"이름을 명시 적으로 사용하지 않는 한'db.collection'을 양식으로 사용하십시오. 문제를 혼란스럽게하기 때문에 테스트에 사용한 "무엇이든"을 사용하지 마십시오. –