Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /
Query Modifiers

$min

$min

Nota

Obsoleto desde la v3.2

A partir de la v3.2, el operador $min está obsoleto en mongosh. En mongosh, utiliza cursor.min() en su lugar.

Especifica un valor de $min para especificar el límite inferior inclusivo para un índice específico con el fin de restringir los resultados de find(). El $min especifica el límite inferior para todas las claves de un índice específico en orden.

mongosh proporciona el método contenedor min():

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

También puede especificar la opción con cualquiera de las dos formas:

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

Nota

Uso del índice

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

Como min() requiere un índice en un campo y obliga a la consulta a usar dicho índice, puedes preferir el operador $gte para la consulta si es posible. Considera el siguiente ejemplo:

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

La consulta utilizará el índice en el campo age, aunque el índice en _id pueda ser mejor.

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

  • los límites del índice especificados en $min y $max deben hacer referencia a las claves del mismo índice.

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

    Cambiado en la versión 4.0.

Los operadores $min y $max indican que el sistema debe evitar la planificación normal de consultas. En su lugar, construyen un escaneo de índice donde los límites del índice son especificados explícitamente por los valores dados en $min y $max.

Advertencia

Si uno de los dos límites no se especifica, el plan del query será una exploración de índice que no está delimitada en un lado. Esto puede degradar el rendimiento en comparación con una query que no contenga ninguno de los operadores, o una que use ambos operadores para restringir más rigurosamente el escaneo del índice.

Los siguientes ejemplos utilizan mongosh contenedores.

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

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

Esta operación limita la query a aquellos documentos donde el campo age es al menos 20 y obliga a un plan del query que escanea el índice { age: 1 } desde 20 hasta MaxKey.

Puede usar $min junto con $max para limitar los resultados 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 $max debe ser superior al límite especificado por $min.

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

Volver

$maxTimeMS

En esta página