Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Driver GO

executar uma query de pesquisa Atlas

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.

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.

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.

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 campo title contém a palavra "Alabama"

  • Cria uma etapa $project que instrui o driver a incluir o campo title nos resultados da consulta

  • Passa 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'
}

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.

Para saber mais sobre o método Aggregate(), consulte a documentação da API.

Voltar

Séries temporais

Nesta página