Docs 菜单
Docs 主页
/ / /
C 驱动程序
/

指定要返回的字段

在此页面上

  • Overview
  • 样本数据
  • 投影类型
  • 指定要包含的字段
  • 排除 _id字段
  • 更多信息
  • API 文档

在本指南中,您可以了解如何使用投影指定从读取操作中返回哪些字段。 投影是指定 MongoDB 从查询中返回哪些字段的文档。

本指南中的示例使用 Atlas示例数据集sample_restaurants数据库中的 restaurants集合。 要学习;了解如何创建免费的MongoDB Atlas 群集并加载示例数据集,请参阅Atlas入门指南。

您可以使用投影来指定要在返回文档中包含哪些字段,或指定要排除哪些字段。

在指定要包含在投影中的某些字段时,会隐式排除所有其他字段(默认包含的_id字段除外)。 除非要排除_id字段,否则不能在单个投影中组合包含和排除语句。

要从返回的文档删除_id字段,您必须明确将其排除。

以下示例使用 mongoc_collection_find_with_opts() 函数查找 name字段值为 "Emerald Pub" 的所有餐厅。它使用 mongoc_collection_find_with_opts() 的选项参数指定一个投影,以仅返回所返回文档的 namecuisineborough 字段。

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" }

在指定要包含的字段时,您还可以从返回的文档中排除_id字段。

以下示例运行与上一示例相同的查询,但从投影中排除_id字段:

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" }

要了解有关投影的更多信息,请参阅 MongoDB Server 手册中的项目字段指南

要学习;了解有关本指南中讨论的任何函数或类型的更多信息,请参阅以下API文档:

后退

Retrieve Data