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 the cursor.comment() page 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.
Documentação da API
Para saber mais sobre qualquer uma das funções discutidas nesta guia, consulte a seguinte documentação da API: