Visão geral
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.
Dados de amostra
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.
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 |
|---|---|
| Define as opções de agrupamento para a query. |
| 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 . |
| Especifica o índice a ser usado para a query. |
| Limita o número de documentos a serem retornados da query. |
| Define o tempo de execução máximo no servidor para esta operação. |
| Define o número de documentos a ignorar. |
| 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 .
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: