Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

$suma (Expresión)

$sum

Devuelve la suma de los valores numéricos de una matriz.

Nota

Otros usos de $sum

Esta página describe $sum cuando se usa como una expresión que devuelve la suma de valores numéricos en una matriz.

También puedes usar $sum en estos otros contextos:

Cuando se usa como expresión, $sum tiene una de dos sintaxis:

{ $sum: <expression> }

En la sintaxis anterior, el operando es una expresión única que se evalúa como un array. $sum recorre el array y devuelve la suma de sus valores numéricos.

{ $sum: [ <expression1>, <expression2>, ... ] }

En la sintaxis anterior, cada expresión es un único valor numérico. $sum devuelve la suma de esos valores.

Cuando se mezclan tipos de entrada, $sum prioriza el tipo de entrada más pequeño sobre el más grande. Un tipo se considera más grande cuando representa un rango de valores más amplio. El orden de los tipos numéricos de menor a mayor es: entero → largo → doble → decimal.

El tipo de entrada mayor también determina el tipo de resultado, a menos que la operación se desborde y salga del rango representado por ese tipo de dato mayor. En casos de desbordamiento, $sum promueve el resultado según el siguiente orden:

  • Si el tipo de entrada más grande es integer, el tipo de resultado se eleva a long.

  • Si el tipo de entrada más grande es long, el tipo de resultado se eleva a double.

  • Si el tipo mayor es double o decimal, el resultado del desbordamiento se representa como infinito positivo o negativo. No se realiza ninguna promoción de tipo del resultado.

Si se utiliza en un campo que contiene valores numéricos y no numéricos, $sum ignora los valores no numéricos y devuelve la suma de los valores numéricos.

Si todos los operandos no son numéricos, $sum devuelve 0.

Los ejemplos de esta página utilizan datos del conjunto de datos sample_mflix. Para obtener más información sobre cómo cargar este conjunto de datos en su implementación autogestionada de MongoDB, consulte Cargar el conjunto de datos de ejemplo. Si realizó alguna modificación en las bases de datos de ejemplo, es posible que deba eliminarlas y volver a crearlas para ejecutar los ejemplos de esta página.

Este ejemplo utiliza $sum en la etapa $project para calcular el total de premios ganados y nominados para tres películas, y almacenar el resultado en un nuevo campo llamado totalAwards.

db.movies.aggregate( [
{
$match: {
title: {
$in: [
"The Godfather",
"Inception",
"The Dark Knight"
]
}
}
},
{
$project: {
_id: 0,
title: 1,
totalAwards: { $sum: [ "$awards.wins", "$awards.nominations" ] }
}
},
{
$sort: { totalAwards: -1 }
}
] )

La tubería precedente:

  • Utiliza $match para filtrar tres películas específicas.

  • Utiliza $project con $sum para crear el campo totalAwards, que contiene la suma de awards.wins y awards.nominations para cada película.

  • Utiliza $sort para ordenar los resultados por premios totales en orden descendente.

Califique esta página