您当前的位置:首页 > 计算机 > 软件应用 > 数据库 > MongoDB

MongoDB投影(指定查询字段)

时间:10-07来源:作者:点击数:

MongoDB 中的投影即查询指定的字段,而不是直接查询文档的全部字段。比如说某个文档中有 5 个字段,而我们只需要其中的 3 个字段,那么就可以使用 MongoDB 中的投影来指定需要查询的 3 个字段。

在《MongoDB查询文档》一节中我们介绍的 find() 方法,在使用 find() 方法时,如果不设置其中的第二个参数,那么在查询时将返回文档中的所有字段,想要限制要查询的字段,您就需要设置 find() 方法的第二个参数即可,语法格式如下:

db.collection_name.find(query,{key1:1, key2:1, ...})

语法说明如下:

  • query:可选参数,使用查询操作符指定的查询条件;
  • key1、key2、...:为要查询或者隐藏的字段,当值为 1 时表示显示该字段,值为 0 时表示隐藏该字段。

注意:如果仅需要设置第二个参数,而不需要设置第一个参数的话,则需要在第一个参数的位置添加一个空的花括号 {} 作为占位符,例如:db.collection_name.find({}, {_id:1})

【示例】使用投影查询指定的字段,首先,我们先在集合中插入一些数据:

> db.course.insert([
... {
... "title" : "HTML教程",
... "author" : "城东书院",
... "url" : "https://www.cdsy.xyz/computer/programme/html_div_css/"
... },{
... "title" : "C#教程",
... "author" : "城东书院",
... "url" : "https://www.cdsy.xyz/computer/programme/dotNet/"
... },{
... "title" : "MongoDB教程",
... "author" : "城东书院",
... "url" : "https://www.cdsy.xyz/computer/soft/database/mongodb/"
... }
... ])
BulkWriteResult({
        "writeErrors" : [ ],
        "writeConcernErrors" : [ ],
        "nInserted" : 3,
        "nUpserted" : 0,
        "nMatched" : 0,
        "nModified" : 0,
        "nRemoved" : 0,
        "upserted" : [ ]
})

然后使用投影查询集合中所有文档的 title 字段:

> db.course.find({},{"title":1, _id:0})
{ "title" : "HTML教程" }
{ "title" : "C#教程" }
{ "title" : "MongoDB教程" }

注意:在执行 find() 方法时 _id 字段是始终显示的,如果您不希望显示此字段,就需要将其设置为 0。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门