Definición
cursor.min()Importante
Método mongosh
Esta página documenta un método.
mongoshEsta no es la documentación de un controlador específico de un lenguaje, como Node.js.Para los drivers de API de MongoDB, consulte la documentación del driver de MongoDB específica del lenguaje.
Especifica el límite inferior inclusivo para un índice específico con el fin de restringir los resultados
find()de.min()proporciona una forma de especificar límites inferiores en índices de clave compuesta.El método tiene el siguiente
min()parámetro:ParameterTipoDescripciónindexBoundsDocumento
El límite inferior inclusivo para las claves de índice.
El parámetro
indexBoundstiene la siguiente forma de prototipo:{ field1: <min value>, field2: <min value2>, fieldN:<min valueN> }
Nota
Uso del índice
Tip
min() existe principalmente para dar soporte al mongos proceso.
Compatibilidad
Este método está disponible en implementaciones alojadas en los siguientes entornos:
- MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
Nota
Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre la compatibilidad de Atlas con todos los comandos, consulte Comandos no compatibles.
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Comportamientos
Interacción con la selección de índices
Dado que requiere un índice en un campo y obliga a la min() $gte consulta a usar dicho índice, es posible que prefiera el operador para la consulta, si es posible. Considere el siguiente ejemplo:
db.products.find( { _id: { $in: [ 6, 7 ] } } ).min( { price: Decimal128("1.39") } ).hint( { price: 1 } )
La consulta utilizará el índice en el campo price, aunque el índice en _id pueda ser mejor.
Límites del índice
Si utiliza min() con para especificar un max() rango:
El límite especificado por debe ser mayor que el límite
max()especificadomin()por.
min() sin max()
Los min() métodos y indican que el sistema debe evitar la planificación de consultas normal. Construyen un escaneo max() min() max()de índice donde los límites del índice se especifican explícitamente mediante los valores dados en y.
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.
Ejemplo
A menos que la consulta sea una condición de igualdad en find() el _id campo { _id: <value> } de, debe especificar explícitamente el índice con el método hint() para min() ejecutar.
Para los siguientes ejemplos, crea una muestra de colección llamada products que contenga los siguientes documentos:
db.products.insertMany([ { "_id" : 1, "item" : "apple", "type" : "honey crisp", "price" : Decimal128("1.99") }, { "_id" : 2, "item" : "apple", "type" : "fuji", "price" : Decimal128("1.99") }, { "_id" : 3, "item" : "apple", "type" : "jonagold", "price" : Decimal128("1.29") }, { "_id" : 4, "item" : "apple", "type" : "jonathan", "price" : Decimal128("1.29") }, { "_id" : 5, "item" : "apple", "type" : "mcintosh", "price" : Decimal128("1.29") }, { "_id" : 6, "item" : "apple", "type" : "cortland", "price" : Decimal128("1.29") }, { "_id" : 7, "item" : "orange", "type" : "cara cara", "price" : Decimal128("2.99") }, { "_id" : 9, "item" : "orange", "type" : "satsuma", "price" : Decimal128("1.99") }, { "_id" : 8, "item" : "orange", "type" : "valencia", "price" : Decimal128("0.99") }, { "_id" : 10, "item" : "orange", "type" : "navel", "price" : Decimal128("1.39") } ])
Crea los siguientes índices para la colección:
db.products.createIndexes( [ { "item" : 1, "type" : 1 }, { "item" : 1, "type" : -1 }, { "price" : 1 } ] )
Utilizando el orden del
{ item: 1, type: 1 }índice,min()limita la consulta a los documentos que están en o por encima del límite de la clave del índiceitemigual aappleytypeigualjonagolda, como en el siguiente ejemplo:db.products.find().min( { item: 'apple', type: 'jonagold' } ).hint( { item: 1, type: 1 } ) La query devuelve los siguientes documentos:
{ "_id" : 3, "item" : "apple", "type" : "jonagold", "price" : Decimal128("1.29") } { "_id" : 4, "item" : "apple", "type" : "jonathan", "price" : Decimal128("1.29") } { "_id" : 5, "item" : "apple", "type" : "mcintosh", "price" : Decimal128("1.29") } { "_id" : 7, "item" : "orange", "type" : "cara cara", "price" : Decimal128("2.99") } { "_id" : 10, "item" : "orange", "type" : "navel", "price" : Decimal128("1.39") } { "_id" : 9, "item" : "orange", "type" : "satsuma", "price" : Decimal128("1.99") } { "_id" : 8, "item" : "orange", "type" : "valencia", "price" : Decimal128("0.99") } Utilizando el ordenamiento del
{ price: 1 }índice, limita la consulta a los documentos que están en o por encima del límitemin()de la clave del índicepriceigual a1.39y limita la consulta a los documentos que están por debajo del límite de la clavemax()del índicepriceigual1.99a:Nota
El límite especificado por debe ser mayor que el límite
max()especificadomin()por.db.products.find().min( { price: Decimal128("1.39") } ).max( { price: Decimal128("1.99") } ).hint( { price: 1 } ) La query devuelve los siguientes documentos:
{ "_id" : 10, "item" : "orange", "type" : "navel", "price" : Decimal128("1.39") }