Overview
Los índices de campo único son índices que hacen referencia a un solo campo de un documento de una colección. Estos índices mejoran el rendimiento de las consultas y la ordenación de campos únicos. 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 se creará el índice
El orden de clasificación de los valores indexados puede ser ascendente o descendente.
Nota
El valor predeterminado _id_ El índice es un ejemplo de índice de campo único. Este índice se crea automáticamente en el campo _id al crear 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, consulte la guía Introducción a 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
El siguiente es un ejemplo de una consulta 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: