Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

$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 válido. expresión siempre que se resuelvan a números. Para obtener más información sobre las expresiones, consulta 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 dato dividendo antes de realizar la operación $mod. El tipo de dato de salida es el tipo de dato dividendo.

Cuando el dividendo es negativo, el resto también es negativo. Para obtener más detalles sobre este comportamiento, véase 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 } ]

Volver

$minute

En esta página