2014-08-29 4 views
1

나는 내 Couch 데이터베이스에 다음과 같은 데이터 구조를 가지고있다. 일별로 균등 한 숫자가 sessions_id이어야합니다. 레코드도 app_version으로 필터링해야합니다.couchdb - 고유 한 값의 합계 얻기

나의 현재 맵리 듀스는이

"dau": { 
      "map": "function(doc) { 
        date = doc.session.timestamp.split("T")[0]; 
        emit([date, doc.app_version, doc.session.session_id], 1); 
        }", 
      "reduce": "_count" 
     } 

처럼 보인다 그러나 이것은 다음과 같은 나에게 출력을 제공

나는대로이 인쇄 될 필요가
["2014-08-20", 2, "kOnNIhCNQ31LlkpEPQ7XnN1D"] 1 
["2014-08-20", 2, "TOnNIhCNQ31LlkpEPQ7XnN1D"] 2 
["2014-08-21", 2, "TOnNIhCNQ31LlkpEPQ7XnN1D"] 2 

- 그 고유의 번호가 있기 때문에 1 일당 session_id s 일

["2014-08-20", 2] 2 
["2014-08-21", 2] 1 

어떻게하면 좋을까요?

도움을 주시면 감사하겠습니다. 처음보기에

[ 
     { 
      "app_version": 2, 
      "platform": "android", 
      "session": { 
       "timestamp": "2014-08-20T00:00:00.000Z", 
       "session_id": "TOnNIhCNQ31LlkpEPQ7XnN1D", 
       "ip": "202.150.213.66", 
       "location": "1.30324,103.5498" 
      } 

     }, 
    { 
     "app_version": 2, 
     "platform": "android", 
     "session": { 
      "timestamp": "2014-08-21T00:00:00.000Z", 
      "session_id": "TOnNIhCNQ31LlkpEPQ7XnN1D", 
      "ip": "202.150.213.66", 
      "location": "1.30324,103.5498" 
     } 

    } 
    { 
     "app_version": 2, 
     "platform": "ios", 
     "session": { 
      "timestamp": "2014-08-21T00:00:00.000Z", 
      "session_id": "TOnNIhCNQ31LlkpEPQ7XnN1D", 
      "ip": "202.150.213.66", 
      "location": "1.30324,103.5498" 
     } 

    }, 
    { 
     "app_version": 1, 
     "platform": "ios", 
     "session": { 
      "timestamp": "2014-08-21T00:00:00.000Z", 
      "session_id": "TOnNIhCNQ31LlkpEPQ7XnN1D", 
      "ip": "202.150.213.66", 
      "location": "1.30324,103.5498" 
     } 

     } 
    ] 

답변

1

넣어 APP_VERSION :

emit([doc.app_version, date, doc.session.session_id], 1); 

그런 다음 group_level = 2

+0

와 쿼리 이것은 내가이해야 할 일을하지 않을 것입니다. 결과는 다음과 같습니다. [ "2014-08-20", 2] 3 [ "2014-08-21", 2] 2 내가 찾고있는 것은 아니지만 –