복붙노트

[MONGODB] 합 MongoDB에 의해 기 [중복]

MONGODB

합 MongoDB에 의해 기 [중복]

이것은 예전 MySQL의 쿼리입니다.

SELECT Count(`status`) as amt, `status` 
FROM (`users`) 
GROUP BY `status`

뭔가를 반환하는

+---------+----------+
| amt     | status   |
+---------+----------+
| 3       |        0 |
| 210     |        1 |
| 330     |        2 |
| 4233    |        3 | 
| 540085  |        4 |
+---------+----------+

이 몽고의 가장 기본적인 이제까지 쿼리 것 같아,하지만 $를 사용하라고 $ 그룹을 사용하여 많은 시도 후 나는 그래도 문제가 해결되지 집계.

db.users.aggregate([ { 
    $group: { 
        _id: "$status", 
        amt: { $status: 1 }
    } 
} ] )

나는이 상태 필드를 선택로 일 것이라고 생각하지만, 나는 $를 포함하기 때문에, 그것은`AMT를 통해 그 그룹화 쿼리의 양을 계산합니다 : {$ 상태 : 1}

하지만 내 대답은 아니라

{ "result" : [ ], "ok" : 1 }

그래서 반 일? 하지만 아무것도 반환하지 않았다. 나는 _id 일부가 무엇인지입니다 생각했다.

나는이 예제를 다음했다 : http://docs.mongodb.org/manual/reference/aggregation/group/

해결법

  1. ==============================

    1.당신이 가까이있어,하지만 당신은 그룹을 계산하기 위해 $ 합 연산자를 사용합니다 :

    당신이 가까이있어,하지만 당신은 그룹을 계산하기 위해 $ 합 연산자를 사용합니다 :

    db.users.aggregate([ { 
        $group: { 
            _id: "$status", 
            amt: { $sum: 1 }
        } 
    } ] )
    
  2. from https://stackoverflow.com/questions/17909694/group-by-sum-mongodb by cc-by-sa and MIT license