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.

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.

Para usar um exemplo desta página, copie o exemplo de código no aplicativo de amostra ou em seu próprio aplicativo. Certifique-se de substituir todos os espaços reservados nos exemplos de código, como <connection string URI>, pelos valores relevantes para sua implantação do MongoDB.

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.

#include <bson/bson.h>#include <mongoc/mongoc.h>#include <stdio.h> intmain(void){ char *str; bson_error_t error; mongoc_init(); mongoc_client_t *client = mongoc_client_new("<connection string URI>"); mongoc_collection_t *collection = mongoc_client_get_collection(client, "<database name>", "collection name"); // Start example code here // End example code here mongoc_collection_destroy(collection); mongoc_client_destroy(client); mongoc_cleanup(); return EXIT_SUCCESS;}

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 heremongoc_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 hereint64_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 hereconst 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.