Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Especifique los campos a devolver

En esta guía, se puede aprender cómo especificar qué campos devolver de una operación de lectura utilizando una proyección. Una proyección es un documento que especifica qué campos devuelve MongoDB de una query.

Los ejemplos de esta guía utilizan el restaurants colección en la base de datos sample_restaurants de la Conjuntos de datos de muestra de Atlas. Para aprender a crear un clúster gratuito de MongoDB Atlas y cargar los conjuntos de datos de ejemplo, consulta la guía Introducción a MongoDB.

Puede utilizar una proyección para especificar qué campos incluir en un documento de devolución o para especificar qué campos excluir.

Al especificar ciertos campos para incluir en una proyección, todos los demás se excluyen implícitamente (excepto el campo _id, que se incluye por defecto). No se pueden combinar declaraciones de inclusión y exclusión en una sola proyección, a menos que se excluya el campo _id.

Para remover el campo _id del documento devuelto, debes excluirlo explícitamente.

El siguiente ejemplo utiliza la función mongoc_collection_find_with_opts() para buscar todos los restaurantes cuyo valor de campo name sea "Emerald Pub". Especifica una proyección para devolver solo los campos name, cuisine y borough de los documentos devueltos mediante el parámetro de opciones 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" }

Al especificar los campos a incluir, también puedes excluir el campo _id del documento devuelto.

El siguiente ejemplo ejecuta la misma query que el ejemplo anterior, pero excluye el campo _id de la proyección:

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 obtener más información sobre proyecciones, consulta la Guía de campos de proyecto en el Manual del Servidor de MongoDB.

Para obtener más información sobre cualquiera de las funciones o tipos tratados en esta guía, consulta la siguiente documentación de la API:

Volver

Buscar documentos

En esta página