Visão geral
Neste guia, você pode aprender como usar o driver Go para executar consultas do Atlas Search em uma coleção. O Atlas Search permite realizar pesquisas de texto completo em collections hospedadas no MongoDB Atlas. Os índices do Atlas Search especificam o comportamento da busca e quais campos indexar.
Dados de amostra
O exemplo neste guia usa a coleção movies
no banco de dados sample_mflix
dos conjuntos de dados de amostra do Atlas. Para aprender como criar um cluster do MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o guia Introdução ao Atlas.
executar uma query de pesquisa Atlas
Esta seção mostra como criar um pipeline de agregação para executar uma query Atlas Search em uma coleção.
Para executar uma query do Atlas Search , você deve criar um índice do Atlas Search na sua collection. Para saber como criar programaticamente um índice do Atlas Search, consulte a seção golang-atlas-search-indexes do guia Índices.
Depois de criar um índice do Atlas Search , adicione o estágio $search
em sua array de estágios do 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 aprender mais sobre operações de agregação, consulte o guia Agregação.
Exemplo do Atlas Search
Este exemplo executa uma query do Atlas Search executando as seguintes ações:
Cria um estágio
$search
que instrui o driver a fazer query de documentos nos quais o campotitle
contém a palavra"Alabama"
Cria uma etapa
$project
que instrui o driver a incluir o campotitle
nos 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 Atlas Search, consulte os guias do Atlas 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 da API.