Overview
En esta página, puede ver ejemplos de código copiables que muestran cómo administrar diferentes tipos de índices mediante el controlador MongoDB Scala.
Para usar un ejemplo de esta página, copie el código en la aplicación de ejemplo o en su propia aplicación. Asegúrese de reemplazar todos los marcadores de posición en los ejemplos de código, como <connection string URI>, con los valores relevantes para su implementación de MongoDB.
Aplicación de muestra
Puede usar la siguiente aplicación de ejemplo para probar el código de esta página. Para usarla, siga estos pasos:
Asegúrese de tener el controlador de Scala instalado en su proyecto. Consulte la Descargue e instale la guía para obtener más información.
Copia el siguiente código y pégalo en un nuevo archivo
.scala.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() } }
Índice de un solo campo
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 obtener más información sobre los índices de campo único, consulte la guía Índices de campo único.
Índice compuesto
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.
Multikey Index
El siguiente ejemplo crea un índice multiclave en el campo con valor de matriz especificado:
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 de claves múltiples, consulte la guía Índices de claves múltiples.
Índice geoespacial
El siguiente ejemplo crea un índice 2dsphere 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 de 2dsphere, consulte Guía de2índices de dsphere en el manual del servidor MongoDB.
Para obtener más información sobre el tipo GeoJSON, consulte la guía de Objetos GeoJSON en el manual del servidor MongoDB.
Índice de caída
El siguiente ejemplo elimina un índice con el nombre especificado:
val observable = collection.dropIndex("<index name>") Await.result(observable.toFuture(), Duration(10, TimeUnit.SECONDS))
Gestión del índice de búsqueda de MongoDB
Las siguientes secciones contienen ejemplos de código que describen cómo administrar los índices de búsqueda de MongoDB.
Para obtener más información sobre los índices de búsqueda, consulte la guía Índices de búsqueda de MongoDB.
Crear índice de búsqueda
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))
Índices de búsqueda de listas
El siguiente ejemplo imprime una lista de í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") })
Actualizar índices de búsqueda
El siguiente ejemplo actualiza un índice de búsqueda de MongoDB existente 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))
Eliminar índices de búsqueda
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))
Documentación de la API
Para obtener más información sobre los métodos u objetos utilizados en esta guía, consulte la siguiente documentación de API: