Menu Docs
Página inicial do Docs
/ /

Executar uma query de pesquisa do MongoDB

Neste guia, você pode aprender como usar o driver C para executar consultas 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.

O exemplo deste guia utiliza a movies coleção no sample_mflix banco de dados do a 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 amostra, consulte o guia de Introdução.

Esta seção mostra como criar um pipeline de agregação para executar uma query do MongoDB Search em uma coleção. Na estrutura bson_t que representa os estágios do pipeline, adicione o estágio $search para especificar os critérios de pesquisa. Em seguida, chame a função mongoc_collection_aggregate() e passe seu pipeline como um parâmetro.

Dica

Para aprender mais sobre operações de agregação, consulte o guia Agregação.

Antes de executar uma query do MongoDB Search, você deve criar um índice do MongoDB Search em sua collection. Para saber como criar programaticamente um índice de pesquisa do MongoDB , consulte a seção Criar um índice de pesquisa do guia Índices de pesquisa do MongoDB .

Este exemplo executa uma query 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 os estágios do pipeline para a função mongoc_collection_aggregate() e imprime os resultados

const bson_t *doc;
bson_t *pipeline = BCON_NEW("pipeline",
"[",
"{", "$search", "{", "index", BCON_UTF8("<index name>"), "text", "{", "query", BCON_UTF8("Alabama"), "path", BCON_UTF8("title"), "}", "}", "}",
"{", "$project", "{", "title", BCON_INT32(1), "}", "}",
"]");
mongoc_cursor_t *results =
mongoc_collection_aggregate(collection, MONGOC_QUERY_NONE, pipeline, NULL, NULL);
while (mongoc_cursor_next(results, &doc)) {
char *str = bson_as_canonical_extended_json(doc, NULL);
printf("%s\n", str);
bson_free(str);
}
bson_destroy(pipeline);
mongoc_cursor_destroy(results);
{ "_id" : { "$oid" : "..." }, "title" : "Alabama Moon" }
{ "_id" : { "$oid" : "..." }, "title" : "Sweet Home Alabama" }
{ "_id" : { "$oid" : "..." }, "title" : "Crazy in Alabama" }

Para saber mais sobre o MongoDB Search, consulte MongoDB Search na documentação do Atlas .

Para saber mais sobre a função mongoc_collection_aggregate(), consulte a documentação API.

Voltar

Executar um comando de banco de dados

Nesta página