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 eliminan automáticamente documentos de una colección después de una cierta cantidad de tiempo o en una hora de reloj específica.
Al crear un índice de campo único, debe especificar los siguientes detalles:
El campo en el que se creará el índice
El orden de clasificación de los valores indexados como 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 movies colección sample_mflix de la base de datos de los conjuntos de datos de ejemplo 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 database las collection variables 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 de campo único
Utilice 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
Puede verificar la creación del índice enumerando los índices de la colección. Debería ver un índice para title en la lista, como se muestra en el siguiente resultado:
# Lists all indexes on the collection puts collection.indexes.collect(&:to_json)
{"v": 2, "key": {"title": 1}, "name": "title_1"}
Ejemplo de consulta
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 índices, consulte Optimizar consultas mediante el uso de í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 analizados en esta guía, consulte la siguiente documentación de API: