texto - ¿Cómo agregar suma en MongoDB para obtener un conteo total?
relacionar dos colecciones en mongodb (1)
Para alguna colección con un campo { wins: Number } , ¿cómo podría usar MongoDB Aggregation Framework para obtener el número total de ganancias en todos los documentos de una colección?
Ejemplo:
Si tengo 3 documentos con wins: 5 , wins: 8 , wins: 12 respectivamente, ¿cómo podría usar MongoDB Aggregation Framework para devolver el número total, es decir, total: 25 .
Suma
Para obtener la suma de un campo agrupado al usar el Marco de Agregación de MongoDB, necesitará usar $group y $sum :
db.characters.aggregate([ {
$group: {
_id: null,
total: {
$sum: "$wins"
}
}
} ] )
En este caso, si desea obtener la suma de todas las wins , necesita referirse al nombre del campo usando la sintaxis $wins como $wins que solo recupera los valores del campo de wins de los documentos agrupados y los suma.
Contar
También puede sum otros valores al pasar un valor específico (como lo hizo en su comentario). Si tuvieras
{ "$sum" : 1 } ,
eso realmente sería un recuento de todas las wins , en lugar de un total.