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

Ler dados

Nesta página, você pode ver exemplos de código copiáveis que mostram funções comuns que você pode usar para recuperar documentos usando o driver C.

Dica

Para saber mais sobre qualquer uma das funções mostradas nesta página, consulte o link para um guia relevante fornecido em cada seção.

To use an example from this page, copy the code example into the sample application or your own application. Be sure to replace all placeholders in the code examples, such as <connection string URI>, with the relevant values for your MongoDB deployment.

Você pode usar o seguinte aplicativo de exemplo para testar os exemplos de código nesta página. Para usar o aplicativo de amostra, execute as seguintes etapas:

  1. Verifique se o driver C está instalado.

  2. Copie o seguinte código e cole-o em um novo arquivo .c .

  3. Copie um exemplo de código desta página e cole-o nas linhas especificadas no arquivo.

1#include <bson/bson.h>
2#include <mongoc/mongoc.h>
3#include <stdio.h>
4
5int
6main(void)
7{
8 char *str;
9 bson_error_t error;
10
11 mongoc_init();
12
13 mongoc_client_t *client = mongoc_client_new("<connection string URI>");
14 mongoc_collection_t *collection = mongoc_client_get_collection(client, "<database name>", "collection name");
15
16 // Start example code here
17
18 // End example code here
19
20 mongoc_collection_destroy(collection);
21 mongoc_client_destroy(client);
22 mongoc_cleanup();
23
24 return EXIT_SUCCESS;
25}

Dica

Para obter instruções sobre como instalar o driver C, consulte Download e instalação no guia de introdução.

O exemplo a seguir recupera uma lista de documentos que correspondem aos critérios especificados pelo filtro fornecido:

bson_t *query = bson_new();
// Add fields to query here
mongoc_cursor_t* results = mongoc_collection_find_with_opts(collection, query, NULL, NULL);
const bson_t *doc;
while (mongoc_cursor_next(results, &doc)) {
char *str = bson_as_canonical_extended_json(doc, NULL);
printf("%s\n", str);
bson_free(str);
}
mongoc_cursor_destroy(results);
bson_destroy(query);

Para saber mais sobre a mongoc_collection_find_with_opts() função, consulte o guia Localizar documentos.

O exemplo a seguir retorna o número de documentos na coleção especificada:

bson_t *query = bson_new();
int64_t count =
mongoc_collection_count_documents(collection, query, NULL, NULL, NULL, &error);
printf("%" PRId64 "\n", count);
bson_destroy(query);

Para saber mais sobre a mongoc_collection_count_documents() função, consulte a seção Recuperar uma contagem precisa do guia Contagem de documentos.

O exemplo a seguir retorna o número de documentos que correspondem aos critérios especificados pelo filtro fornecido:

bson_t *query = bson_new();
// Add fields to query here
int64_t count =
mongoc_collection_count_documents(collection, query, NULL, NULL, NULL, &error);
printf("%" PRId64 "\n", count);
bson_destroy(query);

Para saber mais sobre a mongoc_collection_count_documents() função, consulte a seção Recuperar uma contagem precisa do guia Contagem de documentos.

O exemplo a seguir retorna um número aproximado de documentos na collection especificada com base nos metadados da collection:

int64_t count =
mongoc_collection_estimated_document_count(collection, NULL, NULL, NULL, &error);
printf("%" PRId64 "\n", count);

Para saber mais sobre a mongoc_collection_estimated_document_count() função, consulte a seção Recuperar uma contagem estimada do guia Contagem de documentos.

O exemplo a seguir retorna todos os valores distintos do nome do campo especificado em uma determinada coleção:

bson_t reply;
bson_t *command = BCON_NEW("distinct",
BCON_UTF8("<collection name>"),
"key",
BCON_UTF8("<field name>"));
if (!mongoc_collection_read_command_with_opts(collection, command, NULL, NULL, &reply, &error)) {
fprintf(stderr, "An error occurred: %s\n", error.message);
} else {
char *str = bson_as_canonical_extended_json(&reply, NULL);
printf("%s\n", str);
bson_free(str);
}
bson_destroy(&reply);
bson_destroy(command);

Para saber mais sobre o distinct comando, consulte o guia Recuperar valores de campo distintos.

O exemplo a seguir cria um change stream para uma determinada collection e imprime eventos de alteração subsequentes nessa collection:

mongoc_change_stream_t *change_stream;
bson_t *pipeline = bson_new();
// Add stages to pipeline here
const bson_t *doc;
change_stream = mongoc_collection_watch(collection, pipeline, NULL);
while (mongoc_change_stream_next(change_stream, &doc)) {
char *str = bson_as_canonical_extended_json(doc, NULL);
printf("Change: %s\n", str);
bson_free(str);
}
bson_destroy(pipeline);
mongoc_change_stream_destroy(change_stream);

Para saber mais sobre a mongoc_collection_watch() função, consulte o guia Monitorar alterações de dados.