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

Especifique campos para retornar

Nesta página

  • Visão geral
  • Dados de amostra
  • Tipos de projeção
  • Especifique campos a serem incluídos
  • Exclua o campo _id
  • Informações adicionais
  • Documentação da API

Neste guia, você pode aprender como especificar quais campos retornar de uma operação de leitura usando uma projeção. Uma projeção é um documento que especifica quais campos o MongoDB retorna de uma 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 .

Você pode usar uma projeção para especificar quais campos incluir em um documento de devolução ou para especificar quais campos excluir.

Ao especificar determinados campos para incluir em uma projeção, todos os outros campos são implicitamente excluídos (exceto o campo _id , que é incluído por padrão). Não é possível combinar declarações de inclusão e exclusão em uma única projeção, a menos que você esteja excluindo o campo _id .

Para remover o campo _id do documento retornado, você deve excluí-lo explicitamente.

O exemplo seguinte utiliza a função mongoc_collection_find_with_opts() para localizar todos os restaurantes com o valor de campo name de "Emerald Pub". Especifica uma projeção para retornar somente os campos name, cuisine e borough dos documentos retornados usando o parâmetro de opções de mongoc_collection_find_with_opts().

const bson_t *doc;
bson_t *filter = BCON_NEW ("name", BCON_UTF8 ("Emerald Pub"));
bson_t *opts = BCON_NEW ("projection", "{",
"name", BCON_BOOL (true),
"cuisine", BCON_BOOL (true),
"borough", BCON_BOOL (true),
"}");
mongoc_cursor_t *results =
mongoc_collection_find_with_opts (collection, filter, opts, NULL);
while (mongoc_cursor_next (results, &doc)) {
char *str = bson_as_canonical_extended_json (doc, NULL);
printf ("%s\n", str);
bson_free (str);
}
bson_destroy (filter);
bson_destroy (opts);
mongoc_cursor_destroy (results);
{ "_id" : { "$oid" : "..." }, "borough" : "Manhattan", "cuisine" : "American", "name" : "Emerald Pub" }
{ "_id" : { "$oid" : "..." }, "borough" : "Queens", "cuisine" : "American", "name" : "Emerald Pub" }

Ao especificar campos a serem incluídos, você também pode excluir o campo _id do documento retornado.

O exemplo seguinte executa a mesma query do exemplo anterior, mas exclui o campo _id da projeção:

const bson_t *doc;
bson_t *filter = BCON_NEW ("name", BCON_UTF8 ("Emerald Pub"));
bson_t *opts = BCON_NEW ("projection", "{",
"name", BCON_BOOL (true),
"cuisine", BCON_BOOL (true),
"borough", BCON_BOOL (true),
"_id", BCON_BOOL (false),
"}");
mongoc_cursor_t *results =
mongoc_collection_find_with_opts (collection, filter, opts, NULL);
while (mongoc_cursor_next (results, &doc)) {
char *str = bson_as_canonical_extended_json (doc, NULL);
printf ("%s\n", str);
bson_free (str);
}
bson_destroy (filter);
bson_destroy (opts);
mongoc_cursor_destroy (results);
{ "borough" : "Manhattan", "cuisine" : "American", "name" : "Emerald Pub" }
{ "borough" : "Queens", "cuisine" : "American", "name" : "Emerald Pub" }

Para saber mais sobre projeções, consulte o guia Campos de projeto no manual do MongoDB Server .

Para saber mais sobre qualquer uma das funções ou tipos discutidos neste guia, consulte a seguinte documentação da API:

Voltar

Retrieve Data