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 queries de pesquisa 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 de pesquisa do MongoDB 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 gratuito do MongoDB Atlas e carregar os conjuntos de dados de amostra, consulte o guia.

Esta seção mostra como criar um pipeline de agregação para executar uma query de pesquisa 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 de pesquisa do MongoDB Search, você deve criar um índice de pesquisa do MongoDB Search em sua coleção. Para aprender 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 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 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 aprender mais sobre o MongoDB pesquisa, consulte MongoDB pesquisa 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