[MONGODB] 중첩 된 문서 MongoDB의에서 합계
MONGODB중첩 된 문서 MongoDB의에서 합계
나는 운없이, 문서의 배열의 일부 값 합계를 시도하고있다.
이 문서입니다
db.Cuentas.find (). 꽤 ()
{
"Agno": "2013",
"Egresos": [
{
"Fecha": "28-01-2013",
"Monto": 150000,
"Detalle": "Pago Nokia Lumia a @josellop"
},
{
"Fecha": "29-01-2013",
"Monto": 4000,
"Detalle": "Cine, Pelicula fome"
}
],
"Ingresos": [],
"Mes": "Enero",
"Monto": 450000,
"Usuario": "MarioCares"
"_id": ObjectId(....)
}
"MarioCares"그래서, 나는 "사용자 선호도"에 대한 "Egresos"의 "몬토"모든의 합이 필요합니다. 이 예 154000에서
내가 이것을 사용 집계 사용 :
db.Cuentas.aggregate(
[
{ $match: {"Usuario": "MarioCares"} },
{ $group:
{
_id: null,
"suma": { $sum: "$Egresos.Monto" }
}
}
]
)
하지만 난 항상 얻을
{ "result" : [{ "_id" : null, "suma" : 0 }], "ok" : 1 }
내가 무엇을 잘못하고 있지 ?
경찰입니다 이미이 참조
해결법
-
==============================
1.Sammaye는 바와 같이, 당신은 당신이 각 요소에 걸쳐 합계를 $ 할 수 있도록 배열 요소마다 일치하는 문서를 복제 할 Egresos 배열을 언 와인드 $해야합니다
Sammaye는 바와 같이, 당신은 당신이 각 요소에 걸쳐 합계를 $ 할 수 있도록 배열 요소마다 일치하는 문서를 복제 할 Egresos 배열을 언 와인드 $해야합니다
db.Cuentas.aggregate([ {$match: {"Usuario": "MarioCares"} }, {$unwind: '$Egresos'}, {$group: { _id: null, "suma": {$sum: "$Egresos.Monto" } }} ])
-
==============================
2.이 방법으로도 할 수 있습니다. 다만 당신의 필드를 프로젝트 그룹에 필요가 없습니다.
이 방법으로도 할 수 있습니다. 다만 당신의 필드를 프로젝트 그룹에 필요가 없습니다.
db.Cuentas.aggregate([ { $match: { "Usuario": "MarioCares" } }, { $project: { 'MontoSum': { $sum: "$Egresos.Monto" } } } ])
from https://stackoverflow.com/questions/14570577/sum-in-nested-document-mongodb by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB의 임베디드 문서에 고유 키 (0) | 2019.12.14 |
---|---|
[MONGODB] 대규모 분산 시스템에서 UUID 대 ObjectId가의 충돌 확률 (0) | 2019.12.14 |
[MONGODB] 유성 방법 대 / 거부 규칙은 허용 (0) | 2019.12.14 |
[MONGODB] 배열 요소에 의해 MongoDB를 정렬 문서 (0) | 2019.12.14 |
[MONGODB] MongoDB를 집계 프레임 워크 | 여러 값을 통해 그룹? (0) | 2019.12.14 |