Overview
En esta guía, puedes aprender a usar el driver de Go para ejecutar MongoDB Search consultas de búsqueda 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 van a indexar.
Datos de muestra
El ejemplo de esta guía utiliza el movies Colección en la base de datos sample_mflix 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 de introducción de MongoDB.
Ejecuta una MongoDB Search query
Esta sección muestra cómo crear un pipeline de agregación para ejecutar una query de MongoDB Search en una colección.
Para ejecutar una consulta de búsqueda de MongoDB, debes crear un índice de búsqueda de MongoDB en tu colección. Para aprender a crear programáticamente un índice de MongoDB Search, consulta MongoDB Search y MongoDB Vector Search índices en la guía de Índices.
Después de crear un índice de búsqueda de MongoDB, añade la etapa $search en el arreglo de etapas del pipeline para especificar los criterios de búsqueda. Luego, llama al método Aggregate() y pasa el arreglo del pipeline como parámetro.
Tip
Para obtener más información sobre las operaciones de agregación, consulta la guía de Agregación.
Nota
Atlas y requisitos de versión de Community Edition
El operador $search pipeline de agregación está disponible únicamente para colecciones alojadas en clústeres de MongoDB Atlas que ejecutan MongoDB v4.2 o posterior, o en clústeres de MongoDB Community Edition que ejecutan MongoDB v8.2 o posterior. Las colecciones deben estar cubiertas por un índice de búsqueda MongoDB. Para obtener más información sobre la configuración necesaria y la funcionalidad de este operador, consulta la documentación de MongoDB Search.
MongoDB Search Ejemplo
Este ejemplo ejecuta una consulta de búsqueda de MongoDB realizando las siguientes acciones:
Crea una etapa
$searchque indica al controlador que consulte documentos en los que el campotitlecontiene la palabra"Alabama"Crea una etapa
$projectque instruya al driver para incluir el campotitleen los resultados de la query.Pasa las etapas de la pipeline al método
Aggregate()e imprime los resultados
// Defines the pipeline searchStage := bson.D{{"$search", bson.D{ {"text", bson.D{ {"path", "title"}, {"query", "Alabama"}, }}, }}} projectStage := bson.D{{"$project", bson.D{{"title", 1}}}} // Runs the pipeline cursor, err := collection.Aggregate(ctx, mongo.Pipeline{searchStage, projectStage}) if err != nil { panic(err) } // Prints the results var results []bson.D if err = cursor.All(ctx, &results); err != nil { panic(err) } for _, result := range results { fmt.Println(result) }
{ _id: new ObjectId('...'), title: 'Alabama Moon' } { _id: new ObjectId('...'), title: 'Crazy in Alabama' } { _id: new ObjectId('...'), title: 'Sweet Home Alabama' }
Información Adicional
Para aprender más información sobre MongoDB Search, consulta las guías de MongoDB Search y la referencia a la etapa pipeline $search en la documentación de Atlas.
Documentación de la API
Para obtener más información sobre el método Aggregate(), consulte la documentación de la API.