Retrieve Data
Nesta página
Visão geral
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.
Dados de amostra
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 .
Encontrar documentos
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 .
Exemplo de localização de documentos
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);
Modificar comportamento de localização
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 |
---|---|
| Sets the collation options for the query. |
| 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. |
| Specifies the index to use for the query. |
| Limits the number of documents to be returned from the query. |
| Sets the maximum execution time on the server for this operation. |
| Sets the number of documents to skip. |
| 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 .
Informações adicionais
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.
Documentação da API
Para saber mais sobre qualquer uma das funções discutidas nesta guia, consulte a seguinte documentação da API: