Overview
Los índices compuestos contienen referencias a múltiples campos dentro de los documentos de una colección, lo que mejora el rendimiento de las consultas y la clasificación.
Al crear un índice compuesto, debe especificar los siguientes detalles:
Los campos en los que crear el índice
El orden de clasificación de cada campo (ascendente o descendente)
Datos de muestra
Los ejemplos de esta guía utilizan el movies colección en la base de datos sample_mflix de la Conjuntos de datos de muestra de Atlas. Para acceder a esta colección desde su aplicación Ruby, cree un Mongo::Client objeto que se conecte a un clúster de Atlas y asigne los siguientes valores a las variables database collection y:
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, consulte la guía Introducción a Atlas.
Crear un índice compuesto
Utilice el método create_one para crear un índice compuesto. El siguiente ejemplo crea un índice en orden descendente en el campo runtime y en orden ascendente en el campo year:
collection.indexes.create_one({ runtime: -1, year: 1 })
Verificar la creación del índice
Puede verificar la creación del índice enumerando los índices de la colección. Debería ver un índice para runtime y year en la lista, como se muestra en el siguiente resultado:
puts collection.indexes.collect(&:to_json)
{"v": 2, "key": {"runtime": -1, "year": 1}, "name": "runtime_-1_year_1"}
Ejemplo de consulta
El siguiente es un ejemplo de una consulta que está cubierta por el índice creado en los campos runtime y year:
filter = { '$and' => [ { runtime: { '$gt' => 90 } }, { year: { '$gt' => 2005 } } ] } doc = collection.find(filter).first if doc puts doc.to_json else puts "No document found" end
{"_id":...,"runtime": 91,...,"title": "Monster House",...,"year": 2006,...}
Información Adicional
Para ver ejemplos ejecutables que demuestran cómo administrar índices, consulte Optimizar consultas mediante el uso de índices.
Para obtener más información sobre los índices compuestos, consulte Índices compuestos en el manual de MongoDB Server.
Documentación de la API
Para obtener más información sobre cualquiera de los métodos analizados en esta guía, consulte la siguiente documentación de API: