Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Optimiza las consultas utilizando índices

En esta página, puedes ver ejemplos de código copiables que muestran cómo gestionar diferentes tipos de índices utilizando el controlador Scala de MongoDB.

Para usar un ejemplo de esta página, copia el ejemplo de código en la aplicación de muestra o en tu propia aplicación. Asegúrate de reemplazar todos los marcadores de posición en los ejemplos de código, tales como <connection string URI>, con los valores relevantes para tu implementación de MongoDB.

Puedes usar la siguiente aplicación de muestra para probar el código en esta página. Para usar la aplicación de muestra, realice los siguientes pasos:

  1. Asegúrese de que tenga el controlador de Scala instalado en su proyecto. Ver el Guía de descarga e instalación para obtener más información.

  2. Copia el siguiente código y pégalo en un nuevo archivo .scala.

  3. Copia un ejemplo de código de esta página y pégalo en las líneas especificadas del archivo.

import org.mongodb.scala._
import org.mongodb.scala.model.SearchIndexModel
import java.util.concurrent.TimeUnit
import scala.concurrent.Await
import scala.concurrent.duration.Duration
import org.mongodb.scala.model.Indexes
object SearchIndexes {
def main(args: Array[String]): Unit = {
// Create a new client and connect to the server
val mongoClient = MongoClient("<connection string URI>")
val database = mongoClient.getDatabase("<database name>")
val collection = database.getCollection("<collection name>")
// Start example code here
// End example code here
Thread.sleep(1000)
mongoClient.close()
}
}

El siguiente ejemplo crea un índice ascendente en el campo especificado:

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

Para saber más sobre los índices de campo único, consulta la guía Índices de campo único.

El siguiente ejemplo crea un índice compuesto en los dos campos especificados.

val index = Indexes.compoundIndex(
Indexes.descending("<field name 1>"),
Indexes.ascending("<field name 2>")
)
val observable = collection.createIndex(index)
Await.result(observable.toFuture(), Duration(10, TimeUnit.SECONDS))

Para aprender más sobre índices compuestos, consulta la guía de Índices compuestos.

El siguiente ejemplo crea un índice de varias claves en el campo especificado que tiene valores de arreglo:

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

Para obtener más información sobre los índices multiclave, consulta la guía de índices multiclave.

El siguiente ejemplo crea un 2índice dsphere en el campo especificado que contiene objetos GeoJSON:

val observable = collection.createIndex(Indexes.geo2dsphere("<2d index>"))
Await.result(observable.toFuture(), Duration(10, TimeUnit.SECONDS))

Para obtener más información sobre los índices 2dsphere, consulte el Guía 2dsphere índices en el manual de MongoDB Server.

Para obtener más información sobre el tipo GeoJSON, consulta la guía de Objetos GeoJSON en el manual de MongoDB Server.

El siguiente ejemplo borra un índice con el nombre especificado:

val observable = collection.dropIndex("<index name>")
Await.result(observable.toFuture(), Duration(10, TimeUnit.SECONDS))

Las siguientes secciones contienen ejemplos de código que describen cómo gestionar los índices de MongoDB Search.

Para obtener más información sobre los índices de búsqueda, consulta la guía sobre índices de búsqueda de MongoDB.

El siguiente ejemplo crea un índice de búsqueda de MongoDB en el campo especificado:

val index = Document("mappings" -> Document("dynamic" -> <boolean value>))
val observable = collection.createSearchIndex("<index name>", index)
Await.result(observable.toFuture(), Duration(10, TimeUnit.SECONDS))

El siguiente ejemplo imprime una lista de los índices de búsqueda de MongoDB en la colección especificada:

val observable = collection.listSearchIndexes()
observable.subscribe(new Observer[Document] {
override def onNext(index: Document): Unit = println(index.toJson())
override def onError(e: Throwable): Unit = println("Error: " + e.getMessage)
override def onComplete(): Unit = println("Completed")
})

El siguiente ejemplo actualiza un índice existente de MongoDB Search con la nueva definición de índice especificada:

val updateIndex = Document("mappings" -> Document("dynamic" -> false))
val observable = collection.updateSearchIndex("<index to update>", updateIndex)
Await.result(observable.toFuture(), Duration(10, TimeUnit.SECONDS))

El siguiente ejemplo elimina un índice de búsqueda de MongoDB con el nombre especificado:

val observable = collection.dropSearchIndex("<index name>")
Await.result(observable.toFuture(), Duration(10, TimeUnit.SECONDS))

Para obtener más información sobre los métodos u objetos utilizados en esta guía, consulta la siguiente documentación de la API:

Volver

Operaciones en sets de réplicas

En esta página