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.
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
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 utilizam a coleção do restaurants no banco de dados do sample_restaurants a partir do conjunto de dados de amostra do Atlas. Para saber como criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o guia MongoDB Get Started.

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);
{ "_id" : { "$oid" : "..." }, "name" : "Charle'S Corner Restaurant & Deli", "cuisine" : "Spanish", ... }
{ "_id" : { "$oid" : "..." }, "name" : "Real Madrid Restaurant", "cuisine" : "Spanish", ... }
{ "_id" : { "$oid" : "..." }, "name" : "Malaga Restaurant", "cuisine" : "Spanish", ... }
{ "_id" : { "$oid" : "..." }, "name" : "Cafe Espanol", "cuisine" : "Spanish", ... }
{ "_id" : { "$oid" : "..." }, "name" : "Cafe Riazor", "cuisine" : "Spanish", ... }
...

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

Especifica uma string a ser anexada à query. Isso pode ajudá-lo a rastrear e interpretar a operação nos registros do servidor e nos dados de perfil. Para saber mais sobre comentários da query, consulte a página cursor.comment() no manual do MongoDB Server .

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: