Menu Docs
Página inicial do Docs
/ / /
Scala
/

Índices de campo único

Nesta página

  • Visão geral
  • Dados de amostra
  • Criar Índice de Campo Único
  • Informações adicionais
  • Documentação da API

Índices de campo único são índices com uma referência a um único campo de um documento em uma coleção. Esses índices melhoram a consulta de campo único e o desempenho de classificação. Elas também suportamíndices TTL que removem automaticamente documentos de uma collection após um determinado período de tempo ou em um horário especificado.

Ao criar um índice de campo único, você deve especificar os seguintes detalhes:

  • O campo no qual criar o índice

  • A ordem de classificação para os valores indexados como crescente ou decrescente

Observação

O índice _id_ padrão é um exemplo de um índice de campo único. Este índice é criado automaticamente no campo _id quando uma nova coleção é criada.

Os exemplos neste guia usam a collection movies no banco de dados sample_mflix dos conjuntos de banco de dados de amostra do Atlas. Para saber como criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o guia Iniciar com Atlas .

Para executar os exemplos deste guia, inclua as seguintes declarações de importação em seu arquivo:

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

Utilize o método createIndex() para criar um índice de campo único. O exemplo seguinte cria um índice em ordem crescente no campo title :

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

Você pode verificar se o índice foi criado usando o método listIndexes(). Você deve ver um índice para title na lista, conforme mostrado na seguinte saída:

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"}

O seguinte é um exemplo de uma query coberta pelo índice criado no 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 exemplos executáveis que demonstram como gerenciar índices, consulte Otimizar queries usando índices.

Para saber mais sobre índices de campo único, consulte Índices de campo único no manual do MongoDB Server .

Para saber mais sobre qualquer um dos métodos discutidos nesta guia, consulte a seguinte documentação da API:

Voltar

Indexes