Docs Menu
Docs Home
/ /
Cursors

cursor.min()

cursor.min()

Importante

Método mongosh

Este es un método mongosh. Esta no es la documentación de Node.js ni de otros métodos de controladores específicos de lenguajes de programación.

En la mayoría de los casos, los métodos mongosh funcionan de la misma manera que los métodos tradicionales mongo métodos shell. Sin embargo, algunos métodos heredados no están disponibles en mongosh.

Para la documentación heredada de mongo shell, revisa la documentación de la versión correspondiente de MongoDB Server:

Para los controladores de la API de MongoDB, consultar la documentación específica del controlador de MongoDB para cada lenguaje.

Especifica el límite inferior inclusivo para un índice específico con el fin de restringir los resultados de find(). min() proporciona una forma de especificar límites inferiores en los índices de clave compuesta.

El método min() tiene el siguiente parámetro:

Parameter
Tipo
Descripción

indexBounds

Documento

El límite inferior inclusivo para las claves de índice.

El parámetro indexBounds tiene la siguiente forma de prototipo:

{ field1: <min value>, field2: <min value2>, fieldN:<min valueN> }

Nota

Uso del índice

Para usar un índice con el método max(), se debe usar el método hint() para especificar el índice que se desea usar, excepto cuando la find() query sea una condición de igualdad en el campo _id.

Tip

min() existe principalmente para apoyar el proceso de mongos, y es un contenedor en shell alrededor del modificador de query $min.

Nota

Obsoleto desde la v3.2

A partir de la versión3.2, el operador $min está obsoleto en mongosh. En mongosh, use cursor.min() en su lugar.

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 el soporte de Atlas para 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.

Debido a que min() requiere un índice en un campo, y obliga a la query a usar este índice, es posible que prefiera el operador $gte para la query si es posible. Considera el siguiente ejemplo:

db.products.find( { $in: [ 6, 7 ] } ).min( { price: NumberDecimal("1.39") } ).hint( { price: 1 })

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

Si utiliza min() con max() 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().

Los operadores $min y $max indican que el sistema debe evitar la planificación normal de query. En su lugar, construyen un escaneo de índices donde los límites del índice se especifican 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.

A menos que la find() query sea una condición de igualdad en el campo _id { _id: <value> }, debes especificar explícitamente el índice con el método hint() para ejecutar min().

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" : NumberDecimal("1.99") },
{ "_id" : 2, "item" : "apple", "type" : "fuji", "price" : NumberDecimal("1.99") },
{ "_id" : 3, "item" : "apple", "type" : "jonagold", "price" : NumberDecimal("1.29") },
{ "_id" : 4, "item" : "apple", "type" : "jonathan", "price" : NumberDecimal("1.29") },
{ "_id" : 5, "item" : "apple", "type" : "mcintosh", "price" : NumberDecimal("1.29") },
{ "_id" : 6, "item" : "apple", "type" : "cortland", "price" : NumberDecimal("1.29") },
{ "_id" : 7, "item" : "orange", "type" : "cara cara", "price" : NumberDecimal("2.99") },
{ "_id" : 9, "item" : "orange", "type" : "satsuma", "price" : NumberDecimal("1.99") },
{ "_id" : 8, "item" : "orange", "type" : "valencia", "price" : NumberDecimal("0.99") },
{ "_id" : 10, "item" : "orange", "type" : "navel", "price" : NumberDecimal("1.39") }
])

Crea los siguientes índices para la colección:

db.products.createIndexes( [
{ "item" : 1, "type" : 1 },
{ "item" : 1, "type" : -1 },
{ "price" : 1 }
] )
  • Usando el orden del índice { item: 1, type: 1 }, min() limita la query a los documentos que están en o por encima del límite de clave de índice de item igual a apple y type igual a jonagold, 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" : NumberDecimal("1.29") }
    { "_id" : 4, "item" : "apple", "type" : "jonathan", "price" : NumberDecimal("1.29") }
    { "_id" : 5, "item" : "apple", "type" : "mcintosh", "price" : NumberDecimal("1.29") }
    { "_id" : 7, "item" : "orange", "type" : "cara cara", "price" : NumberDecimal("2.99") }
    { "_id" : 10, "item" : "orange", "type" : "navel", "price" : NumberDecimal("1.39") }
    { "_id" : 9, "item" : "orange", "type" : "satsuma", "price" : NumberDecimal("1.99") }
    { "_id" : 8, "item" : "orange", "type" : "valencia", "price" : NumberDecimal("0.99") }
  • Utilizando el orden de índice { price: 1 }, min() limita la query a los documentos que están en o por encima del límite de clave de índice de price igual a 1.39 y max() limita la query a los documentos que están por debajo del límite de clave de índice de price igual a 1.99:

    Nota

    El límite especificado por max() debe ser mayor que el límite especificado por min().

    db.products.find().min( { price: NumberDecimal("1.39") } ).max( { price: NumberDecimal("1.99") } ).hint( { price: 1 } )

    La query devuelve los siguientes documentos:

    { "_id" : 10, "item" : "orange", "type" : "navel", "price" : NumberDecimal("1.39") }

Volver

cursor.maxTimeMS

En esta página