MongoDB: 배열의 항목 수 카운트
컬렉션의 모든 문서에 이름이 지정된 배열이 있는 컬렉션이 있습니다.foo
포함된 문서 집합을 포함합니다.현재 MongoDB 셸에 포함된 인스턴스 수를 계산하는 사소한 방법이 있습니까?foo
다음과 같은 것:
db.mycollection.foos.count()
또는db.mycollection.foos.size()
?
배열의 각 문서는 고유해야 합니다.foo_id
그리고 컬렉션에 있는 임의의 문서에 대한 배열 내부에 요소의 양이 올바른지 확인하기 위해 빠른 계산을 수행하려고 합니다.
MongoDB 2.6에서 Aggregation Framework에는 다음과 같은 새로운 어레이 연산자가 있습니다.
> 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 }
최신 버전의 mongo(2.2 이상)에 있는 경우 집계 프레임워크를 사용할 수 있습니다.
db.mycollection.aggregate([
{$unwind: '$foo'},
{$group: {_id: '$_id', 'sum': { $sum: 1}}},
{$group: {_id: null, total_sum: {'$sum': '$sum'}}}
])
그것이 당신에게 총계를 줄 것입니다.foo
당신이 수집한 s.
마지막 생략group
레코드당 결과를 집계합니다.
투영 및 그룹 사용
db.mycollection.aggregate(
[
{
$project: {
_id:0,
foo_count:{$size:"$foo"},
}
},
{
$group: {
foo_total:{$sum:"$foo_count"},
}
}
]
)
여러 자식 어레이 수도 이 방법으로 계산할 수 있습니다.
db.mycollection.aggregate(
[
{
$project: {
_id:0,
foo1_count:{$size:"$foo1"},
foo2_count:{$size:"$foo2"},
}
},
{
$group: {
foo1_total:{$sum:"$foo1_count"},
foo2_total:{$sum:"$foo2_count"},
}
}
]
)
언급URL : https://stackoverflow.com/questions/21387969/mongodb-count-the-number-of-items-in-an-array
'programing' 카테고리의 다른 글
WPF 창에서 외부 앱 호스팅 (0) | 2023.05.05 |
---|---|
MongoDB 객체용 Regex아이디 (0) | 2023.05.05 |
인덱스를 생성하지 않도록 Doctrine에 지정하는 방법 (0) | 2023.05.05 |
순서가 다른 PostgreSQL DISTING ON입니다. (0) | 2023.04.25 |
Excel VBA를 git에 어떻게 넣습니까? (0) | 2023.04.25 |