Overview
En esta guía, puede aprender a utilizar el controlador Go 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.
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.
Ejecutar una consulta de búsqueda de MongoDB
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.
Para 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 Sección de índices de búsqueda de MongoDB y búsqueda vectorial de MongoDB de 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
Ejemplo de búsqueda en MongoDB
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 indica al controlador que incluya el campotitleen los resultados de la consultaPasa las etapas de la canalización 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 obtener más información sobre MongoDB Search, consulte las guías de MongoDB Search y la referencia de la etapa de canalización $search en la documentación de Atlas.
Documentación de la API
Para obtener más información sobre el Aggregate() método, consulte la documentación de la API.