从查询返回的项目字段
默认情况下,MongoDB的查询语句返回匹配到文档的所有字段,为了限制MongoDB返回给应用的数据,可以通过 projection 文档来指定或限制返回的字段。
本文提供了使用mongo shell中 db.collection.find() 方法映射查询的案例。案例中使用的 inventory 集合数据可以通过下面的语句产生。
返回匹配文档中的所有字段
如果没有特别指定 projection , db.collection.find() 方法将会返回匹配文档的所有字段。
下面的案例返回 inventory 集合中 status 等于**"A"**的文档的所有字段。
上述操作等价于下面的标准SQL:
仅返回指定字段和_id字段
映射会返回在映射文档中显示设置为 1 的字段。
下面的案例返回所有检索到文档中 item, status, _id 三个字段。
上述操作等价于下面的标准SQL:
去除_id字段
可以通过在映射文档中将 _id 字段设置为 0 来从结果集中去除 _id 字段,就像下面的例子:
上述操作等价于下面的标准SQL:
Note:
除_id字段外,不能在映射文档中同时使用包含和去除语句。
去除指定字段
可以使用映射来排除特定字段,而不是在匹配文档中列出要返回的字段。
下面的案例返回匹配文档中除 status 和 instock 字段之外的所有字段:
Note:
除_id字段外,不能在映射文档中同时使用包含和去除语句。
返回嵌套文档中的指定字段
通过 点号 引用嵌套文档字段并且在映射文档中将该字段设置为 1 来实现返回嵌套文档中的指定字段。
下面的案例返回
-
_id 字段(默认返回)
-
item 字段
-
status 字段
-
文档 size 中的 uom 字段
uom 字段是 size 嵌套文档中的字段.