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.
Docs Menu

$mod (operador de expresión)

$mod

Divide un número entre otro y devuelve el resto.

La expresión $mod tiene la siguiente sintaxis:

{ $mod: [ <expression1>, <expression2> ] }

El primer argumento es el dividendo y el segundo argumento es el divisor. Es decir, el primer argumento se divide por el segundo argumento.

Los argumentos pueden ser cualquier expresión válida siempre y cuando se resuelvan en números. Para obtener más información sobre las expresiones, consultar Expresiones.

A partir de la versión 7.2, el tipo de dato de salida del operador $mod es el mayor de los dos tipos de datos de entrada.

Nota

Antes de la versión 7.2, el valor y el tipo de campo de las entradas determinan el tipo de salida $mod si:

  • El divisor es de tipo double, pero tiene un valor entero.

  • El dividendo es del tipo int o long.

En este caso, MongoDB convierte el divisor al tipo de datos del dividendo antes de realizar la operación $mod. El tipo de dato de salida es el tipo de dato del dividendo.

Cuando el dividendo es negativo, el residuo también es negativo. Para obtener más detalles sobre este comportamiento, consulta la documentación oficial de JavaScript.

Para un ejemplo, consulta Dividendo Negativo.

Considera una colección conferencePlanning con los siguientes documentos:

db.conferencePlanning.insertMany( [
{ "_id" : 1, "city" : "New York", "hours" : 80, "tasks" : 7 },
{ "_id" : 2, "city" : "Singapore", "hours" : 40, "tasks" : 4 }
] )

La siguiente agregación utiliza la expresión $mod para devolver el resto del campo hours dividido por el campo tasks:

db.conferencePlanning.aggregate( [
{ $project: { remainder: { $mod: [ "$hours", "$tasks" ] } } }
] )

La operación devuelve los siguientes resultados:

[
{ '_id' : 1, 'remainder' : 3 },
{ '_id' : 2, 'remainder' : 0 }
]

Considere una colección modExample que contenga el siguiente documento:

db.modExample.insertOne( [
{ "_id" : 1, "dividend": -13, "divisor": 9 }
] )

Esta agregación utiliza la expresión $mod para devolver el resto de dividend dividido por el campo divisor:

db.modExample.aggregate( [
{ $project: { remainder: { $mod: [ "$dividend", "$divisor" ] } } }
] )

La operación devuelve los siguientes resultados:

[ { '_id' : 1, 'remainder' : -4 } ]