Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El $mod
operador de consulta se usa para filtrar documentos en función del resto de una operación de división. Este operador permite consultas que implican condiciones matemáticas, como buscar valores divisibles por un número o tener un resto específico. Se admite en Azure Cosmos DB para MongoDB (núcleo virtual).
Sintaxis
{
<field>: { $mod: [ <divisor>, <remainder> ] }
}
-
<field>
: el campo en el que se va a realizar la operación de módulo. -
<divisor>
: número por el que se va a dividir el valor del campo. -
<remainder>
: el resto esperado después de la división.
Ejemplo
Ejemplo 1: Buscar documentos donde el sales
valor es divisible en 3
db.collection.find({ "sales": { "$mod": [3, 0] } })
En este ejemplo se recuperan todos los documentos en los que el valor del sales
campo es divisible en 3 (es decir, el resto es 0). Generará la siguiente salida:
[
{ "_id": 1, "sales": 9, "product": "A" },
{ "_id": 2, "sales": 15, "product": "B" },
{ "_id": 3, "sales": 21, "product": "C" }
]
Ejemplo 2: Buscar documentos en los que el totalSales
valor tiene un resto de 2 cuando se divide entre 5
db.collection.find({ "totalSales": { "$mod": [5, 2] } })
Esta consulta filtra los documentos en los que el totalSales
campo tiene un resto de 2 cuando se divide entre 5. Generará la siguiente salida:
[
{ "_id": 4, "totalSales": 7, "product": "X" },
{ "_id": 5, "totalSales": 12, "product": "Y" },
{ "_id": 6, "totalSales": 17, "product": "Z" }
]
Ejemplo 3: Consulta de campos anidados mediante $mod
db.collection.find({ "sales.monthly.total": { "$mod": [4, 1] } })
En este ejemplo se muestra cómo consultar un campo anidado (sales.monthly.total
) con el $mod
operador . Generará la siguiente salida:
[
{ "_id": 7, "sales": { "monthly": { "total": 5 } }, "category": "Electronics" },
{ "_id": 8, "sales": { "monthly": { "total": 9 } }, "category": "Clothing" }
]
Consideraciones
- Si se especifican menos de dos valores en la matriz para el operador $mod, el servidor produce un error que indica que no se han pasado suficientes argumentos.
- Si se especifican más de dos valores en la matriz para el operador $mod, el servidor produce un error que indica que se han pasado demasiados argumentos.
Limitaciones
- El
$mod
operador solo se aplica a campos numéricos. Si se usa en campos no numéricos, se produce un error. - Asegúrese de que el divisor no sea cero, ya que conduce a una operación no válida.
Contenido relacionado
- Revise las opciones para migrar de MongoDB a Azure Cosmos DB para MongoDB (vCore).
- Obtenga más información sobre la compatibilidad de características con MongoDB.