Overview
Índices de un solo campo son índices con una referencia a un solo campo de un documento en una colección. Estos índices mejoran la performance de query y ordenación en un único campo. También admiten Índices TTL que remueven automáticamente los documentos de una colección después de cierto período de tiempo o en un momento específico programado.
Cuando se crea un índice de campo único, se deben especificar los siguientes detalles:
El campo en el que crear el índice
El orden de clasificación de los valores indexados puede ser ascendente o descendente.
Nota
Por defecto _id_ index es un ejemplo de un índice de campo único. Este índice se crea automáticamente en el campo _id cuando se crea una nueva colección.
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 de campo único
Utiliza el método create_one para crear un índice de campo único. El siguiente ejemplo crea un índice en orden ascendente en el campo title:
# Creates an index on the "title" field collection.indexes.create_one({ title: 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 title en la lista, como se muestra en la siguiente salida:
# Lists all indexes on the collection puts collection.indexes.collect(&:to_json)
{"v": 2, "key": {"title": 1}, "name": "title_1"}
query de ejemplo
A continuación, se muestra un ejemplo de una query que está cubierta por el índice creado en el campo title:
# Finds a document with the title "Sweethearts" by using the newly created index filter = { title: 'Sweethearts' } doc = collection.find(filter).first if doc puts doc.to_json else puts "No document found" end
{"_id":...,"plot":"A musical comedy duo...", "genres":["Musical"],...,"title":"Sweethearts",...}
Información Adicional
Para ver ejemplos ejecutables que demuestran cómo administrar los índices, consulte Optimizar las Consultas Utilizando Índices.
Para aprender más sobre los índices de campo único, consulta Índices de campo único en el manual de 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: