Definición
$maxNota
Obsoleto desde v3.2
A partir de la versión3.2, el operador
$maxestá obsoleto enmongosh. Enmongosh, utilicecursor.max()en su lugar.Especifique un valor para
$maxespecificar el límite superior exclusivo de un índice específico y así restringir los resultadosfind()de. El$maxvalor especifica el límite superior para todas las claves de un índice específico en orden.mongoshproporciona el método contenedormax():db.collection.find( { <query> } ).max( { field1: <max value>, ... fieldN: <max valueN> } ) También puede especificar con cualquiera de las dos
$maxformas:db.collection.find( { <query> } )._addSpecial( "$max", { field1: <max value1>, ... fieldN: <max valueN> } ) db.collection.find( { $query: { <query> }, $max: { field1: <max value1>, ... fieldN: <max valueN> } } )
Comportamiento
Interacción con la selección de índices
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.
Límites del índice
$max sin $min
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.
Ejemplos
Los siguientes ejemplos utilizan mongosh envoltorios.
Especifica Límite Superior Exclusivo
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.
Usar con $min
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
db.collection.find().min( { age: 20 } ).max( { age: 25 } ).hint( { age: 1 } )