[MONGODB] MongoDB를는 : 배열의 항목 수를 카운트
MONGODBMongoDB를는 : 배열의 항목 수를 카운트
나는 컬렉션의 모든 문서가 포함 된 문서의 집합을 포함하는 배열 foo라는이있는 컬렉션이 있습니다. 현재 foo는 내 얼마나 많은 경우 계산하는 MongoDB의 쉘에서 사소한 방법이 있습니까? 뭔가 같은 :
db.my_collection.food.count () 또는 db.my_collection.food.size ()?
배열의 요구에 각 문서는 고유 foo_id을하고 나는 확실히 요소의 적절한 양의 컬렉션에서 임의의 문서 배열의 내부에 있는지 확인하는 빠른 카운트를하고 싶어.
해결법
-
==============================
1.MongoDB를 2.6에서 집계 프레임 워크는 당신이 사용할 수있는 새로운 배열 $ 크기 연산자가 있습니다 :
MongoDB를 2.6에서 집계 프레임 워크는 당신이 사용할 수있는 새로운 배열 $ 크기 연산자가 있습니다 :
> db.mycollection.insert({'foo':[1,2,3,4]}) > db.mycollection.insert({'foo':[5,6,7]}) > db.mycollection.aggregate({$project: { count: { $size:"$foo" }}}) { "_id" : ObjectId("5314b5c360477752b449eedf"), "count" : 4 } { "_id" : ObjectId("5314b5c860477752b449eee0"), "count" : 3 }
-
==============================
2.당신이 몽고의 최신 버전 (2.2 이상)에있는 경우에는 통합 프레임 워크를 사용할 수 있습니다.
당신이 몽고의 최신 버전 (2.2 이상)에있는 경우에는 통합 프레임 워크를 사용할 수 있습니다.
db.mycollection.aggregate([ {$unwind: '$foo'}, {$group: {_id: '$_id', 'sum': { $sum: 1}}}, {$group: {_id: null, total_sum: {'$sum': '$sum'}}} ])
이는 당신에게 컬렉션의 총, FOOS를 제공 할 것입니다.
마지막 그룹을 생략하면 레코드 당 결과를 집계합니다.
from https://stackoverflow.com/questions/21387969/mongodb-count-the-number-of-items-in-an-array by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] DB에서 검색 한 데이터를 반환의 문제는 루프에서 호출 쿼리하여 (0) | 2019.11.30 |
---|---|
[MONGODB] 어떻게 MongoDB의 컬렉션에서 모든 문서를 하나의 필드를 선택하려면? (0) | 2019.11.30 |
[MONGODB] 몽구스는 항상 빈 배열 NodeJS를 반환 (0) | 2019.11.30 |
[MONGODB] 당신은 몽고에서 $ addToSet에 대한 키를 지정할 수 있습니까? (0) | 2019.11.30 |
[MONGODB] 어떻게하여 MongoDB에서 배열 요소를 제거하려면? (0) | 2019.11.30 |