Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Encontrar documentos

Neste guia, você pode aprender como usar o driver C para localizar e recuperar documentos de uma coleção MongoDB usando operações de leitura. Você pode chamar a função mongoc_collection_find_with_opts() para recuperar documentos que correspondam a um conjunto de critérios especificados em um filtro de queries.

Os exemplos neste guia usam a coleção restaurants no banco de dados sample_restaurants dos conjuntos de dados de amostra do Atlas. Para aprender a criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o Guia de Introdução do MongoDB.

A mongoc_collection_find_with_opts() função utiliza um filtro de query e retorna todos os documentos correspondentes de uma collection. Um filtro de query é um documento que especifica os critérios que o driver usa para corresponder aos documentos da coleção.

Para saber mais sobre filtros de query, consulte o guia Especificar uma query .

O exemplo a seguir usa a função mongoc_collection_find_with_opts() para localizar todos os documentos nos quais o valor do campo cuisine é "Spanish":

bson_t *filter = BCON_NEW("cuisine", BCON_UTF8("Spanish"));
mongoc_cursor_t *results =
mongoc_collection_find_with_opts(collection, filter, NULL, NULL);

A operação mongoc_collection_find_with_opts() no exemplo anterior retorna um mongoc_cursor_t *, que você pode iterar usando a função mongoc_cursor_next() e um loop enquanto. O exemplo a seguir itera e imprime os resultados retornados na query anterior:

const bson_t *doc;
bson_error_t error;
while (mongoc_cursor_next(results, &doc)) {
char *str = bson_as_canonical_extended_json(doc, NULL);
printf("%s\n", str);
bson_free(str);
}
// Ensure we iterated through cursor without error
if (mongoc_cursor_error(results, &error)) {
fprintf(stderr, "Error getting results: %s\n", error.message);
}
mongoc_cursor_destroy(results);
bson_destroy(filter);

Observação

Localizar todos os documentos

Para encontrar todos os documentos em uma coleção, passe um filtro vazio para a função mongoc_collection_find_with_opts():

bson_t *empty_filter = bson_new();
mongoc_cursor_t *results =
mongoc_collection_find_with_opts(collection, empty_filter, NULL, NULL);
mongoc_cursor_destroy(results);
bson_destroy(empty_filter);

Você pode modificar o comportamento da função mongoc_collection_find_with_opts() passando uma estrutura bson_t que contém as opções que você deseja configurar. A tabela a seguir descreve as opções comumente usadas para modificar query:

Opção
Descrição

collation

Define as opções de agrupamento para a query.

comment

Specifies a string to attach to the query. This can help you trace and interpret the operation in the server logs and in profile data. To learn more about query comments, see the cursor.comment() page in the MongoDB Server manual.

hint

Especifica o índice a ser usado para a query.

limit

Limita o número de documentos a serem retornados da query.

maxTimeMS

Define o tempo de execução máximo no servidor para esta operação.

skip

Define o número de documentos a ignorar.

sort

Define os critérios de classificação a serem aplicados à query.

O exemplo seguinte utiliza as opções limit e maxTimeMS para limitar o número de documentos retornados pela query para 10 e definir um tempo máximo de execução de 10000 milissegundos na operação:

bson_t *filter = BCON_NEW("cuisine", BCON_UTF8("Spanish"));
bson_t *opts = BCON_NEW("limit", BCON_INT32(10), "maxTimeMS", BCON_INT32(10000));
mongoc_cursor_t *results =
mongoc_collection_find_with_opts(collection, filter, opts, NULL);
mongoc_cursor_destroy(results);
bson_destroy(filter);
bson_destroy(opts);

Para obter uma lista completa de opções que modificam o comportamento do,mongoc_collection_find_with_opts() consulte a documentação do método find no manual do MongoDB Server .

Para saber mais sobre filtros de queries, consulte Especificar uma query.

Para exibir exemplos de código executáveis que recuperam documentos usando o driver C, consulte Ler dados.

Para saber mais sobre qualquer uma das funções discutidas nesta guia, consulte a seguinte documentação da API: