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

Optimiza las consultas utilizando índices

En esta página, puedes ver ejemplos de código copiables que muestran cómo gestionar diferentes tipos de índices utilizando el Controlador de MongoDB Ruby.

Para usar un ejemplo de esta página, copia el ejemplo de código en la aplicación de muestra o en tu propia aplicación. Asegúrate de reemplazar todos los marcadores de posición en los ejemplos de código, tales como <connection string>, con los valores relevantes para tu implementación de MongoDB.

Puedes usar la siguiente aplicación de muestra para probar el código en esta página. Para usar la aplicación de muestra, realice los siguientes pasos:

  1. Asegúrate de tener instalado el driver de Ruby en tu proyecto. Consulte el Guía de descarga e instalación para obtener más información.

  2. Copia el siguiente código y pégalo en un nuevo archivo .rb.

  3. Copia un ejemplo de código de esta página y pégalo en las líneas especificadas del archivo.

require 'mongo'
# Replace the placeholders with your credentials
uri = "<connection string>"
# Sets the server_api field of the options object to Stable API version 1
options = { server_api: { version: "1" }}
# Creates a new client and connect to the server
client = Mongo::Client.new(uri, options)
database = client.use('<database name>')
collection = database[:<collection name>]
# Start example code here
# End example code here
client.close

El siguiente ejemplo crea un índice ascendente en el campo especificado:

collection.indexes.create_one({ <field name>: 1 })

Para saber más sobre los índices de campo único, consulta la guía Índices de campo único.

El siguiente ejemplo crea un índice compuesto en los dos campos especificados.

collection.indexes.create_one({ <field name 1>: -1, <field name 2>: 1 })

Para aprender más sobre índices compuestos, consulta la guía de Índices compuestos.

El siguiente ejemplo crea un índice de varias claves en el campo especificado que tiene valores de arreglo:

collection.indexes.create_one({ <field name>: 1 })

Para obtener más información sobre los índices multiclave, consulta la guía de índices multiclave.

El siguiente ejemplo crea un 2índice dsphere en el campo especificado que contiene objetos GeoJSON:

collection.indexes.create_one({ <GeoJSON field name>: '2dsphere' })

Para obtener más información sobre los índices geoespaciales, consulte la guía Índices geoespaciales.

Las siguientes secciones contienen ejemplos de código que describen cómo gestionar los índices de MongoDB Search.

Para obtener más información sobre los índices de búsqueda, consulta la guía Índices de MongoDB Search y MongoDB Vector Search.

El siguiente ejemplo crea un índice de búsqueda de MongoDB en el campo especificado:

index_definition = {
mappings: {
dynamic: false,
fields: {
<field name>: { type: '<field type>' }
}
}
}
collection.search_indexes.create_one(index_definition, name: '<index name>')

El siguiente ejemplo imprime una lista de los índices de búsqueda de MongoDB en la colección especificada:

puts collection.search_indexes.collect(&:to_json)

El siguiente ejemplo actualiza un índice existente de MongoDB Search con la nueva definición de índice especificada:

updated_definition = {
mappings: {
dynamic: false,
fields: { <updated field name>: { type: '<updated field type>' } }
}
}
collection.search_indexes.update_one(updated_definition, name: '<index name>')

El siguiente ejemplo elimina un índice de búsqueda de MongoDB con el nombre especificado:

collection.search_indexes.drop_one(name: '<index name>')

El siguiente ejemplo crea un índice de texto en el campo de string especificado:

collection.indexes.create_one({ <field name>: 'text' })

Para obtener más información sobre los índices de texto, consulta la guía de Índices de Texto.

El siguiente ejemplo crea varios índices en el arreglo dado de especificaciones de índices:

collection.indexes.create_many([
{ key: { <field name 1>: 1 } },
{ key: { <field name 2>: -1 } },
])

El siguiente ejemplo borra un índice con el nombre especificado:

collection.indexes.drop_one( '<index name>' )

El siguiente ejemplo muestra cómo borrar todos los índices de una colección:

collection.indexes.drop_all

El siguiente ejemplo imprime una lista de todos los índices en la colección especificada:

puts collection.indexes.collect(&:to_json)

A continuación se presenta una lista completa de las opciones disponibles que puedes agregar al crear índices. Estas opciones reflejan las opciones admitidas por el comando createIndex. Para obtener más información, consulte el createIndex command en el manual de MongoDB Server.

Opción
Descripción

:background

O true o false. Indica que el índice se cree en segundo plano.

:expire_after

Número de segundos después de los cuales caducarán los documentos en la colección.

:name

El nombre del índice.

:sparse

Si el índice debe ser disperso o no, ya sea true o false.

:storage_engine

El nombre del motor de almacenamiento para este índice en particular.

:version

La versión del formato de índice que se utilizará.

:default_language

El lenguaje por defecto de los índices de texto.

:language_override

El nombre del campo que se usará para anular el lenguaje por defecto.

:text_version

El formato de versión para el almacenamiento de índices de texto.

:weights

Un documento que especifica campos y ponderaciones en la búsqueda de texto.

:sphere_version

La versión del índice de esfera 2d.

:bits

Establece el límite máximo para la latitud y la longitud en el índice 2d.

:max

Límite máximo para latitud y longitud en el índice 2d.

:min

Límite mínimo para latitud y longitud en el índice 2d.

:bucket_size

El número de unidades en las que agrupar los valores de ubicación en un índice geo-haystack.

:partial_filter_expression

Un filtro para un índice parcial.

:hidden

Un booleano que especifica si el índice debe estar oculto; un índice oculto es aquel que existe en la colección pero no será utilizado por el planificador de query.

:commit-quorum

Especifica cuántos miembros que contienen datos en un set de réplicas, incluido el primario, deben completar correctamente la creación de índices antes de que el primario marque los índices como listos. Los valores potenciales son:

  • entero de 0 hasta el número de nodos del set de réplicas

  • “majority” lo que indica que se debe votar por una mayoría de nodos que manejan datos

  • “votingMembers” lo que significa que todos los nodos portadores de datos de votación deben votar

Para más información, consulta commitQuorum en el manual del MongoDB Server.

Para obtener más información sobre los métodos u objetos utilizados en esta guía, consulta la siguiente documentación de la API:

Volver

Datos de Time Series

En esta página