在MongoDB中,投影表示仅选择所需要字段的数据,而不是选择整个文档字段的数据。如果某个文档有5
个字段,但只要显示3
个字段,那么就只选择3
个字段吧,这样做是非常有好处的。
find()方法
MongoDB的find()
方法,在 MongoDB 查询文档中此方法接收的第二个可选参数是要检索的字段列表。 在MongoDB中,当执行find()
方法时,它默认将显示文档的所有字段。为了限制显示的字段,需要将字段列表对应的值设置为1
或0
。1
用于显示字段,而0
用于隐藏字段。
具有投影的find()
方法的基本语法如下:
语法
>db.COLLECTION_NAME.find({},{KEY:1})
假设集合mycol
有以下数据 –
> db.mycol.find({}, {'_id':1, 'title':1})
{ "_id" : 101, "title" : "MongoDB Guide" }
{ "_id" : 102, "title" : "NoSQL Database" }
{ "_id" : 104, "title" : "Python Quick Guide" }
{ "_id" : 100, "title" : "MongoDB Overview" }
>
以下示例将在查询文档时只显示文档的标题。
> db.mycol.find({}, {'title':1,'_id':0})
{ "title" : "MongoDB Guide" }
{ "title" : "NoSQL Database" }
{ "title" : "Python Quick Guide" }
{ "title" : "MongoDB Overview" }
> db.mycol.find({}, {'title':1,'by':1, 'url':1})
{ "_id" : 101, "title" : "MongoDB Guide", "by" : "yiibai tutorials", "url" : "http://www.yiibai.com" }
{ "_id" : 102, "title" : "NoSQL Database", "by" : "yiibai tutorials", "url" : "http://www.yiibai.com" }
{ "_id" : 104, "title" : "Python Quick Guide", "by" : "yiibai tutorials", "url" : "http://www.yiibai.com" }
{ "_id" : 100, "title" : "MongoDB Overview", "by" : "yiibai tutorials", "url" : "http://www.yiibai.com" }
>
请注意,在执行find()
方法时,始终都会显示_id
字段,如果不想要此字段,则需要将其设置为0
。