MongoDB.local SF, Jan 15: See the speaker lineup & ship your AI vision faster. Use WEB50 to save 50%
Find out more >
Menu Docs
Página inicial do Docs
/ /

Executar uma query de pesquisa do MongoDB

Neste guia, você aprenderá a usar o driver Go para executar queries do MongoDB Search em uma coleção. O MongoDB Search permite realizar pesquisas de texto completo em coleções hospedadas no MongoDB Atlas. Os índices do MongoDB Search especificam o comportamento da pesquisa e quais campos indexar.

O exemplo deste guia utiliza a coleção movies no banco de dados do sample_mflix a partir dos conjuntos de dados de amostra do Atlas. Para saber como criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o guia MongoDB Get Started.

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ê precisa criar um índice do MongoDB Search na sua coleção. Para aprender a criar programaticamente um índice do MongoDB Search, consulte a seção Índices do MongoDB Search e do MongoDB Vector Search no guia de índices.

Depois de criar um índice do MongoDB Search, adicione o estágio $search ao array de estágios do pipeline para especificar os critérios de pesquisa. Em seguida, chame o método Aggregate() e passe seu array de pipeline como parâmetro.

Dica

Para saber mais sobre as operações de agregação, consulte o Guia de agregação.

Este exemplo executa uma query de pesquisa do MongoDB 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 MongoDB Search, consulte os guias MongoDB 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 API.

Voltar

Séries temporais

Nesta página