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.