MongoDB में प्रोजेक्शन का उपयोग करके विशिष्ट फील्ड्स चुनना
MongoDB में क्वेरी परिणामों में केवल वांछित फील्ड्स शामिल करने के लिए प्रोजेक्शन ऑब्जेक्ट (find का दूसरा पैरामीटर) में फील्ड को 1 (शामिल करें) या 0 (बहिष्कृत करें) सेट करें।
उदाहरण: संग्रह और दस्तावेज़ बनाना
> db.demo415.insertOne({"ClientName":"Robert","ClientCountryName":"US"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e72329db912067e57771adc") }
> db.demo415.insertOne({"ClientName":"David","ClientCountryName":"UK"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e7232acb912067e57771add") }
> db.demo415.insertOne({"ClientName":"Bob","ClientCountryName":"AUS"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e7232b4b912067e57771ade") }
सभी दस्तावेज़ देखना
> db.demo415.find();
आउटपुट:
{ "_id" : ObjectId("5e72329db912067e57771adc"), "ClientName" : "Robert", "ClientCountryName" : "US" }
{ "_id" : ObjectId("5e7232acb912067e57771add"), "ClientName" : "David", "ClientCountryName" : "UK" }
{ "_id" : ObjectId("5e7232b4b912067e57771ade"), "ClientName" : "Bob", "ClientCountryName" : "AUS" }
केवल ClientCountryName फील्ड चुनना (बाकी बहिष्कृत)
> db.demo415.find({},{_id:0,ClientName:0});
आउटपुट:
{ "ClientCountryName" : "US" }
{ "ClientCountryName" : "UK" }
{ "ClientCountryName" : "AUS" }
प्रोजेक्शन नियम:
{field: 1}- फील्ड शामिल करें (केवल ये फील्ड्स लौटाए जाते हैं){field: 0}- फील्ड बहिष्कृत करें (ये छोड़कर सभी लौटाए जाते हैं)- मिक्स नहीं कर सकते: _id के अलावा 1 और 0 एक साथ उपयोग नहीं कर सकते
_idडिफ़ॉल्ट रूप से शामिल होता है; बहिष्कृत करने के लिए{_id: 0}उपयोग करें
उदाहरण:
// केवल Name शामिल
db.demo415.find({}, {Name: 1, _id: 0})
// ClientName बहिष्कृत, बाकी सभी शामिल
db.demo415.find({}, {ClientName: 0})
// नेस्टेड फील्ड
db.demo415.find({}, {"address.city": 1, _id: 0})
// एग्रीगेशन में $project
db.demo415.aggregate([{$project: {Name: 1, _id: 0}}])
प्रदर्शन लाभ: केवल आवश्यक फील्ड्स लौटाने से नेटवर्क ट्रैफिक और मेमोरी उपयोग कम होता है।