Menu Docs
Página inicial do Docs
/ / /
Driver C
/

Retrieve Data

Nesta página

  • Visão geral
  • Dados de amostra
  • Encontrar documentos
  • Exemplo de localização de documentos
  • Modificar comportamento de localização
  • Informações adicionais
  • Documentação da API

Neste guia, você pode aprender como usar o driver C para recuperar dados 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 query.

Os exemplos neste guia utilizam a coleção do restaurants no banco de dados de dados do sample_restaurants a partir dos conjuntos 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 Iniciar com Atlas .

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
Sets the collation options for the 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 $comment in the MongoDB Server manual.
hint
Specifies the index to use for the query.
limit
Limits the number of documents to be returned from the query.
maxTimeMS
Sets the maximum execution time on the server for this operation.
skip
Sets the number of documents to skip.
sort
Defines the sort criteria to apply to the 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 do MongoDB.

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

Voltar

Especificar uma query