在MongoDB中,投影表示僅選擇所需要字段的數(shù)據(jù),而不是選擇整個(gè)文檔字段的數(shù)據(jù)。如果某個(gè)文檔有5個(gè)字段,但只要顯示3個(gè)字段,那么就只選擇3個(gè)字段吧,這樣做是非常有好處的。
MongoDB的find()方法,在 MongoDB 查詢文檔中此方法接收的第二個(gè)可選參數(shù)是要檢索的字段列表。 在MongoDB中,當(dāng)執(zhí)行find()方法時(shí),它默認(rèn)將顯示文檔的所有字段。為了限制顯示的字段,需要將字段列表對(duì)應(yīng)的值設(shè)置為1或0。1用于顯示字段,而0用于隱藏字段。
具有投影的find()方法的基本語法如下:
語法
>db.COLLECTION_NAME.find({},{KEY:1})
假設(shè)集合mycol有以下數(shù)據(jù) -
> 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" }
>
以下示例將在查詢文檔時(shí)只顯示文檔的標(biāo)題。
> 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" }
>
請(qǐng)注意,在執(zhí)行find()方法時(shí),始終都會(huì)顯示_id字段,如果不想要此字段,則需要將其設(shè)置為0。