Definición
cursor.hint(index)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.
Llama a este método en una query para anular la selección predeterminada de índices de MongoDB y el proceso de optimización de query. Utiliza
db.collection.getIndexes()para devolver la lista de índices actuales de una colección.El método tiene el siguiente
cursor.hint()parámetro:ParameterTipoDescripciónindexstring o documento
El índice para "indicar" o forzar que MongoDB utilice al realizar la query. Especifique el índice ya sea por el nombre del índice o mediante el documento de especificación del índice.
También puedes especificar
{ $natural : 1 }para forzar que la query realice un escaneo de colección progresivo, o{ $natural : -1 }para un escaneo de colección regresivo.
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.
Comportamiento
Cuando existe un filtro de índice para la forma de la consulta, MongoDB ignora
hint()el.Si una consulta incluye una
$textexpresión, no puede usar para especificar qué índice usar para lahint()consulta.Si utiliza en
hint()un índice oculto o en un índice que no existe, la operación devuelve un error.En colecciones de series temporales, solo puedes especificar pistas utilizando el nombre del índice, no el patrón de clave del índice.
Los ajustes de query de clúster tienen prioridad sobre los ajustes de query o las sugerencias de índice pasadas como campo de comando. MongoDB ignora las sugerencias de índice en los campos de comando si una configuración de query correspondiente ya contiene sugerencias de índice.
Las sugerencias de índices no afectan la forma del query.
Para obtener más información sobre los consejos y la configuración de la query, consulta Sintaxis de configuración de query.
$natural
Usa $natural con cursor.hint() para realizar un escaneo de colección y devolver documentos en orden natural.
Para el uso, vea Forzar escaneos de colección.
Ejemplos
Especifica un índice
El siguiente ejemplo devuelve todos los documentos en la colección llamada users usando el índice en el campo age.
db.users.find().hint( { age: 1 } )
También se puede especificar el índice utilizando el nombre del índice:
db.users.find().hint( "age_1" )
Forzar escaneo de colección
Puedes especificar { $natural : 1 } para que la query realice un escaneo de colección hacia adelante:
db.users.find().hint( { $natural : 1 } )
También puedes especificar { $natural : -1 } para forzar que la query realice un escaneo inverso de la colección:
db.users.find().hint( { $natural : -1 } )