Docs Menu
Docs Home
/ /

Ejecutar una consulta de búsqueda de MongoDB

En esta guía, puede aprender a usar el controlador Kotlin Sync para ejecutar Consultas deMongoDB Search en una colección. MongoDB Search permite realizar búsquedas de texto completo en colecciones alojadas en MongoDB Atlas. Los índices de MongoDB Search especifican el comportamiento de la búsqueda y los campos que se indexan.

Los ejemplos de esta guía utilizan el movies Colección en la sample_mflix base de datos de los conjuntos de datos de muestra de Atlas. Para aprender a crear una implementación gratuita de MongoDB y cargar los conjuntos de datos de muestra, consulte la guía de introducción a MongoDB. Para obtener más información sobre las operaciones de agregación y los generadores, consulte la Guía deoperaciones de agregación.

Esta sección muestra cómo crear una canalización de agregación para ejecutar una consulta de búsqueda de MongoDB en una colección. Puede usar el método de compilación Aggregates.search() para crear una etapa de canalización $search, que especifica los criterios de búsqueda. A continuación, llame al método aggregate() y pase su canalización como parámetro.

Nota

Requisitos de las versiones Atlas y Community Edition

El $search operador de canalización de agregación solo está disponible para colecciones alojadas en clústeres de MongoDB Atlas con MongoDB v4.2 o posterior, o en clústeres de MongoDB Community Edition con MongoDB v.8 2 o posterior. Para obtener más información sobre la configuración y la funcionalidad necesarias de este operador, consulte la documentación de MongoDB Search.

Antes de ejecutar una consulta de búsqueda de MongoDB, debe crear un índice de búsqueda de MongoDB en su colección. Para aprender a crear un índice de búsqueda de MongoDB mediante programación, consulte la sección "Crear un índice de búsqueda" en la guía de índices.

Este ejemplo ejecuta una consulta de búsqueda de MongoDB realizando las siguientes acciones:

  • Construye una etapa $search utilizando el método de construcción Aggregates.search(), indicando al controlador que consulte documentos en los que el campo title contenga la palabra "Alabama"

  • Construye una etapa $project utilizando el método de construcción Aggregates.project(), indicando al controlador que incluya el campo title en los resultados de la consulta

  • Pasa las etapas de la canalización al método aggregate() e imprime los resultados

val pipeline: List<Bson> = listOf(
search(SearchOperator.text(
fieldPath("title"), "Alabama")),
project(Projections.include("title"))
)
val results = collection.aggregate(pipeline)
results.forEach { doc ->
println(doc.toJson())
}
{"_id": {"$oid": "..."}, "title": "Alabama Moon"}
{"_id": {"$oid": "..."}, "title": "Crazy in Alabama"}
{"_id": {"$oid": "..."}, "title": "Sweet Home Alabama"}

Utilice el searchMeta() método para crear una etapa de canalización $searchMeta, que devuelve solo los metadatos de los resultados de búsqueda de texto completo de Atlas.

Tip

Solo disponible en Atlas para MongoDB v4.4.11 y posteriores

Este operador de canalización de agregación solo está disponible en clústeres MongoDB Atlas que ejecutan v4.4.11 y versiones posteriores.

El siguiente ejemplo muestra los metadatos near para una etapa de agregación de búsqueda de MongoDB:

searchMeta(
SearchOperator.near(2010, 1, fieldPath("year"))
)

Para obtener más información sobre MongoDB Search, consulte MongoDB Search en la documentación de Atlas.

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

Volver

Ejecute un comando de base de datos

En esta página