Suma en el documento nested MongoDB

Estoy tratando de sumr algunos valores en una matriz de documentos, sin suerte.

Este es el documento

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(....) } 

Entonces, necesito la sum de todos los “Monto” en “Egresos” para el “Usuario”: “MarioCares” . En este ejemplo 154000

Usando agregación, uso esto:

 db.Cuentas.aggregate( [ { $match: {"Usuario": "MarioCares"} }, { $group: { _id: null, "sum": { $sum: "$Egresos.Monto" } } } ] ) 

Pero siempre me sale

 { "result" : [{ "_id" : null, "sum" : 0 }], "ok" : 1 } 

Qué estoy haciendo mal ?

PD ya veo esto y esto

Como indicó Sammaye, necesita $unwind la matriz Egresos para duplicar el doc coincidente por elemento de matriz para que pueda $sum sobre cada elemento:

 db.Cuentas.aggregate([ {$match: {"Usuario": "MarioCares"} }, {$unwind: '$Egresos'}, {$group: { _id: null, "sum": {$sum: "$Egresos.Monto" } }} ]) 

Sé que es un poco tarde, pero también puedes hacerlo de esta manera. no necesita agrupar solo proyecte sus campos.

 db.Cuentas.aggregate([ { $match: { "Usuario": "MarioCares" } }, { $poject: { 'MontoSum': { $sum: "$Egresos.Monto" } } } ])