Visão geral
Neste guia, você pode aprender como usar o driver Go para executar queries do MongoDB Search em uma coleção. O MongoDB Search permite realizar pesquisas de texto completo em collections hospedadas no MongoDB Atlas. Os índices de pesquisa do MongoDB especificam o comportamento da pesquisa e quais campos indexar.
Dados de amostra
O exemplo deste guia utiliza a movies coleção no banco de dados do a sample_mflix partir dos conjuntos de dados de amostra do Atlas . Para saber como criar um cluster gratuito do MongoDB Atlas e carregar os conjuntos de dados de exemplo, consulte o guia de Introdução ao MongoDB <https://www.mongodb.com/pt-br/docs/get-started/?language=go.
Executar uma query de pesquisa do MongoDB
Esta seção mostra como criar um pipeline de agregação para executar uma query do MongoDB Search em uma coleção.
Para executar uma query do MongoDB Search, você deve criar um índice do MongoDB Search em sua collection. Para saber como criar programaticamente um índice do MongoDB Search, consulte a seção Índices do MongoDB Search e do MongoDB Vector Search do guia Índices.
Depois de criar um índice do MongoDB Search, adicione o estágio $search em sua array de estágios de pipeline para especificar os critérios de pesquisa. Em seguida, chame o método Aggregate() e passe sua array de pipeline como parâmetro.
Dica
Para saber mais sobre as operações de agregação, consulte o Guia de agregação.
Exemplo de pesquisa do MongoDB
Este exemplo executa uma query do MongoDB Search executando as seguintes ações:
Cria um estágio
$searchque instrui o driver a fazer query de documentos nos quais o campotitlecontém a palavra"Alabama"Cria uma etapa
$projectque instrui o driver a incluir o campotitlenos resultados da consultaPassa as fases do pipeline para o método
Aggregate()e imprime os 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' }
Informações adicionais
Para saber mais sobre o MongoDB Search, consulte os guias do MongoDB Search e a referência do estágio do pipeline $search na documentação do Atlas .
Documentação da API
Para saber mais sobre o método Aggregate(), consulte a documentação API.