Docs Menu
Docs Home
/ /
Query Modifiers

$max

$max

Nota

Obsoleto desde v3.2

A partir de la versión3.2, el operador$maxestá obsoleto enmongosh. Enmongosh, utilice cursor.max() en su lugar.

Especifique un valor para $max especificar el límite superior exclusivo de un índice específico y así restringir los resultados find() de. El $max valor especifica el límite superior para todas las claves de un índice específico en orden.

mongosh proporciona el método contenedor max():

db.collection.find( { <query> } ).max( { field1: <max value>, ... fieldN: <max valueN> } )

También puede especificar con cualquiera de las dos $max formas:

db.collection.find( { <query> } )._addSpecial( "$max", { field1: <max value1>, ... fieldN: <max valueN> } )
db.collection.find( { $query: { <query> }, $max: { field1: <max value1>, ... fieldN: <max valueN> } } )

Nota

Uso del índice

A partir de MongoDB,4.2 debe especificar explícitamente el índice particular con el hint() método para max()ejecutar / con la siguiente excepción:$max find() no _id { _id: <value> }necesita indicar si la consulta es una condición de igualdad en el campo.

Dado que requiere un índice en un campo y obliga max() $lt a la consulta a utilizarlo, se recomienda usar el operador si es posible. Considere el siguiente ejemplo:

db.collection.find( { _id: { $in: [ 6, 7 ] } } ).max( { age: 25 } ).hint( { age: 1 } )

La consulta utiliza el índice del campo age, aunque el índice en _id puede ser mejor.

Si utiliza $max con para especificar un $min rango:

  • Los límites de índice especificados en $min y deben referirse a las claves del mismo índice.$max

  • El límite especificado por debe ser mayor que el límite $max especificado $min por.

    Cambiado en la versión 4.0.

Los operadores$miny$maxindican que el sistema debe evitar la planificación normal de consultas. En su lugar, construyen un escaneo de índice cuyos límites se especifican explícitamente mediante los valores dados en$miny$max.

Advertencia

Si no se especifica uno de los dos límites, el plan de consulta consistirá en un escaneo de índice sin límites en un lado. Esto puede reducir el rendimiento en comparación con una consulta que no contenga ningún operador o que utilice ambos para restringir con mayor precisión el escaneo de índice.

Los siguientes ejemplos utilizan mongosh envoltorios.

Considere las siguientes operaciones en una colección llamada collection que tiene un índice { age: 1 }:

db.collection.find( { <query> } ).max( { age: 100 } ).hint( { age: 1 } )

Esta operación limita la consulta a aquellos documentos donde el campo age es menor que 100 y fuerza un plan de consulta que escanea el { age: 1 } índice desde MinKey 100hasta.

Utilice solo $max o junto con para limitar los resultados $min a un rango específico para el mismo índice, como en el siguiente ejemplo:

Nota

A partir de MongoDB,4.0 el límite especificado por debe ser mayor que el límite $max especificado $min por.

db.collection.find().min( { age: 20 } ).max( { age: 25 } ).hint( { age: 1 } )

Volver

$hint

En esta página