Docs Menu
Docs Home
/ /

Índices de un solo campo

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.

Los ejemplos de esta guía utilizan la movies colección sample_mflix de la base de datos de los conjuntos de datos de muestra de Atlas. Para aprender a crear un clúster gratuito de MongoDB Atlas y cargar los conjuntos de datos de muestra, consulte la guía "Comenzar con Atlas".

Para ejecutar los ejemplos de esta guía, debe incluir las siguientes declaraciones de importación en su archivo:

import org.mongodb.scala._
import org.mongodb.scala.model.Indexes
import org.mongodb.scala.model.IndexOptions._
import org.mongodb.scala.model.Filters._
import scala.concurrent.Await
import scala.concurrent.duration._
import scala.util.{Failure, Success}
import java.util.concurrent.TimeUnit

Utilice el método createIndex() para crear un índice de campo único. El siguiente ejemplo crea un índice en orden ascendente en el campo title:

val index = Indexes.ascending("title")
val observable = collection.createIndex(index)
Await.result(observable.toFuture(), Duration(10, TimeUnit.SECONDS))

Puede verificar que el índice se creó mediante el método listIndexes(). Debería ver un índice para title en la lista, como se muestra en el siguiente resultado:

collection.listIndexes().subscribe((doc: Document) => println(doc.toJson()),
(e: Throwable) => println(s"There was an error: $e"))
{"v": 2, "key": {"title": 1}, "name": "title_1"}

El siguiente es un ejemplo de una consulta que está cubierta por el índice creado en el campo title:

val filter = equal("title", "Sweethearts")
collection.find(filter).first().subscribe((doc: Document) => println(doc.toJson()),
(e: Throwable) => println(s"There was an error: $e"))
{"_id":...,"plot":"A musical comedy duo...",
"genres":["Musical"],...,"title":"Sweethearts",...}

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.

Para obtener más información sobre cualquiera de los métodos analizados en esta guía, consulte la siguiente documentación de API:

Volver

Indexes

En esta página