Docs Menu
Docs Home
/ /

Optimizar consultas mediante el uso de índices

En esta página, puede ver ejemplos de código copiables que muestran cómo administrar diferentes tipos de índices mediante el controlador Ruby de MongoDB.

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

Puede usar la siguiente aplicación de ejemplo para probar el código de esta página. Para usarla, siga estos pasos:

  1. Asegúrese de tener el controlador Ruby instalado en su proyecto. Consulte la Descargue e instale la guía 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 obtener más información sobre los índices de campo único, consulte 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 multiclave en el campo con valor de matriz especificado:

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

Para obtener más información sobre los índices de claves múltiples, consulte la guía Índices de claves múltiples.

El siguiente ejemplo crea un índice 2dsphere 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 administrar los índices de búsqueda de MongoDB.

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

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 índices de búsqueda de MongoDB en la colección especificada:

puts collection.search_indexes.collect(&:to_json)

El siguiente ejemplo actualiza un índice de búsqueda de MongoDB existente 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 cadena especificado:

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

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

El siguiente ejemplo crea múltiples índices en la matriz dada de especificaciones de índice:

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

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

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

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

collection.indexes.drop_all

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

puts collection.indexes.collect(&:to_json)

A continuación, se muestra una lista completa de las opciones disponibles que puede agregar al crear índices. Estas opciones son similares a las que admite el comando createIndex. Para obtener más información, consulte Comando createIndex en el manual del servidor MongoDB.

Opción
Descripción

:background

true o false. Indica que el índice se creará en segundo plano.

:expire_after

Número de segundos que transcurren hasta que caducan los documentos de la colección.

:name

El nombre del índice.

:sparse

Si el índice debe ser disperso o no, 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 idioma predeterminado de los índices de texto.

:language_override

El nombre del campo que se utilizará al anular el idioma predeterminado.

:text_version

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

:weights

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

:sphere_version

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

:bits

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

:max

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

:min

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

:bucket_size

El número de unidades dentro de las cuales se agruparán los valores de ubicación en un índice de pajar geográfico.

:partial_filter_expression

Un filtro para un índice parcial.

:hidden

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

:commit-quorum

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

  • entero desde 0 hasta el número de miembros del conjunto 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 que contienen datos de votación deben votar

Para obtener más información, consulte commitQuorom en el manual del servidor MongoDB.

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

Volver

Datos de Time Series

En esta página