2014-09-03 2 views
1

중첩 객체 내에서 주어진 값에 따라 그룹을 수행하는 것이 목표입니다.mongodb의 중첩 된 객체에 대한 그룹 쿼리

{ 
    "ip_address": "192.168.132.12", 
    "timestamp" : "2014-08-28T06:41:24", 
    "response" : 200, 
    "uri": { 
    "term": "value A", 
    "page" : "1", 
    "category" : "category 1" 
    } 
} 

는 내가 달성 찾고하는 것은 uri.term 필드에 그룹의 집계를 수행하고 다음과 같이 예를 들어, 내 문서 구조이다. 나는 이것이 직접적인 분야에서 어떻게 성취되는지를 안다. "ip_address" :

db.search_stb.aggregate({ $group : {_id : "$ip_address", total : { $sum : 1 }} }); 

하지만 중첩 된 개체에 대해이 작업을 수행하는 방법에 완전히 붙어 있어요.

도움이 될 것입니다.

+0

{_id : "$ uri.term"}을 (를) 사용해 보셨습니까? –

답변

1

'.' 연산자는 다음과 같습니다.

db.search_stb.aggregate({ $group : {_id : "$uri.term", total : { $sum : 1 }} }); 
+0

감사합니다 - 나는 그처럼 간단한 대답 이었기 때문에 정말로 어리 석다! 또 다른 질문은,'uri.term'은 옵션이므로, 누적 값을 제외하거나 무시하기 위해 어떻게 집계를 얻습니까? – clangers

+0

Np, null을 제외하고 다른 질문이 될 것입니다 같은 태그로 질문을 확인, 당신은 분명히 옳은 대답을 찾을 것입니다 :) 그것은 다른 사람에 대한 참조로 작동합니다 유용합니다 답변을 수락하십시오. – vmr