MongoDB में प्रोजेक्शन: केवल आवश्यक फ़ील्ड्स प्राप्त करना
MongoDB में find() का दूसरा पैरामीटर प्रोजेक्शन डॉक्यूमेंट होता है जो निर्दिष्ट करता है कि कौन से फ़ील्ड्स वापस करने हैं (1) या बाहर करने हैं (0)। यह नेटवर्क ट्रैफ़िक कम करता है और प्रदर्शन सुधारता है।
नमूना डेटा
> db.demo330.insertOne({"Id": 101, "Name": "Chris", "Age": 21});
{ "acknowledged": true, "insertedId": ObjectId("5e52149ff8647eb59e562081") }
> db.demo330.insertOne({"Id": 102, "Name": "Sam", "Age": 24});
{ "acknowledged": true, "insertedId": ObjectId("5e5214aaf8647eb59e562082") }
> db.demo330.insertOne({"Id": 103, "Name": "David", "Age": 28});
{ "acknowledged": true, "insertedId": ObjectId("5e5214b3f8647eb59e562083") }
> db.demo330.insertOne({"Id": 104, "Name": "Bob", "Age": 23});
{ "acknowledged": true, "insertedId": ObjectId("5e5214bdf8647eb59e562084") }
केवल "Name" फ़ील्ड प्रोजेक्ट करना
> db.demo330.find({}, {Name: 1});
आउटपुट:
{ "_id": ObjectId("5e52149ff8647eb59e562081"), "Name": "Chris" }
{ "_id": ObjectId("5e5214aaf8647eb59e562082"), "Name": "Sam" }
{ "_id": ObjectId("5e5214b3f8647eb59e562083"), "Name": "David" }
{ "_id": ObjectId("5e5214bdf8647eb59e562084"), "Name": "Bob" }
_id फ़ील्ड डिफ़ॉल्ट रूप से हमेशा शामिल होती है जब तक कि स्पष्ट रूप से {_id: 0} निर्दिष्ट न किया जाए। आप {Name: 1, Age: 1, _id: 0} का उपयोग करके केवल Name और Age प्राप्त कर सकते हैं। नियम: आप एक ही प्रोजेक्शन में इन्क्लूजन (1) और एक्सक्लूजन (0) नहीं मिला सकते (अपवाद: _id)।