Docs Menu
Docs Home
/ /

$mod (agregación)

$mod

Divide un número por 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, el divisor. Es decir, el primer argumento se divide entre el segundo.

Los argumentos pueden ser cualquier válido. expresión siempre que se resuelvan en números. Para más información sobre expresiones, consulte Expresiones.

A partir de la versión 7.2, el tipo de datos 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 de 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 lo es. Para más detalles sobre este comportamiento, consulte documentación oficial de JavaScript.

Para ver un ejemplo, consulte 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 contiene 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