Overview
Los índices multiclave son índices que mejoran el rendimiento de las consultas sobre campos con valores de arreglo. Se puede crear un índice multiclave en una colección mediante el método create_one y la misma sintaxis que se usa para crear un índice de campo único.
Al crear un índice multiclave, debes especificar los siguientes detalles:
Los campos sobre los que crear el índice
El orden de clasificación para cada campo (ascendente o descendente)
Datos de muestra
Los ejemplos de esta guía utilizan la colección movies en la base de datos sample_mflix de los conjuntos de datos de muestra de Atlas. Para acceder a esta colección desde tu aplicación Ruby, crea un objeto Mongo::Client que se conecte a un clúster de Atlas y asigna los siguientes valores a tus variables database y collection:
database = client.use('sample_mflix') collection = database[:movies]
Para aprender a crear un clúster gratuito de MongoDB Atlas y cargar los conjuntos de datos de muestra, consulta la guía Comenzar con Atlas.
Crear un índice multiclave
Utiliza el método create_one para crear un índice múltiple. El siguiente ejemplo crea un índice en orden ascendente en el campo cast:
collection.indexes.create_one({ cast: 1 })
Verificar la Creación del Índice
Puedes verificar que el índice se creó al listar los índices en la colección. Deberías ver un índice para cast en la lista, como se muestra en la siguiente salida:
puts collection.indexes.collect(&:to_json)
{"v": 2, "key": {"cast": 1}, "name": "cast_1"}
query de ejemplo
A continuación, se muestra un ejemplo de una query que está cubierta por el índice creado en el campo cast:
filter = { cast: { '$all' => ['Aamir Khan', 'Kajol'] } } doc = collection.find(filter).first if doc puts doc.to_json else puts "No document found" end
{"_id":...,"title":"Fanaa",...,"cast": ["Aamir Khan", "Kajol", "Rishi Kapoor", "Tabu"],...}
Información Adicional
Para ver ejemplos ejecutables que demuestran cómo gestionar índices, consulte Optimizando consultas utilizando índices.
Para saber más sobre los índices multiclave, consulta Índices multiclave en el manual del MongoDB Server.
Documentación de la API
Para obtener más información sobre cualquiera de los métodos mencionados en esta guía, consulta la siguiente documentación de la API: