我试图对文档数组中的一些值求和,但没有成功。
这是文档:
db.Cuentas.find().pretty()
{
"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(....)
}
因此,我需要计算“Egresos”中“Usuario”: “MarioCares”所有“Monto”的总和。在这个例子中是154000。
使用聚合函数,我使用了以下代码:
db.Cuentas.aggregate(
[
{ $match: {"Usuario": "MarioCares"} },
{ $group:
{
_id: null,
"suma": { $sum: "$Egresos.Monto" }
}
}
]
)
但我总是得到同样的结果。
{ "result" : [{ "_id" : null, "suma" : 0 }], "ok" : 1 }
我做错了什么?
Egresos
数组,然后按空值分组并求和。 - SammayeReferenceError: Egresos 未定义
。 - Mario Cares Cabezasdb.Cuentas.aggregate([ {$match: {"Usuario": "MarioCares"} }, {$project: { "suma": {$sum: "$Egresos.Monto" }}} ])
- s7vr