MongoDB में प्रोजेक्शन का उपयोग करके विशिष्ट फील्ड्स चुनना
find() में प्रोजेक्शन पैरामीटर का उपयोग करके केवल वांछित फील्ड्स प्राप्त करें।
कलेक्शन बनाना
> db.demo269.insertOne({StudentId:101,StudentSubject:"MySQL"});
{ "acknowledged": true, "insertedId": ObjectId("5e481caa1627c0c63e7dbab4") }
> db.demo269.insertOne({StudentId:102,StudentSubject:"Java"});
{ "acknowledged": true, "insertedId": ObjectId("5e481cb11627c0c63e7dbab5") }
> db.demo269.insertOne({StudentId:103,StudentSubject:"MongoDB"});
{ "acknowledged": true, "insertedId": ObjectId("5e481cb21627c0c63e7dbab6") }
> db.demo269.insertOne({StudentId:104,StudentSubject:"C"});
{ "acknowledged": true, "insertedId": ObjectId("5e481cb21627c0c63e7dbab7") }
सभी डॉक्यूमेंट्स (डिफ़ॉल्ट)
> db.demo269.find();
{ "_id": ObjectId("5e481caa1627c0c63e7dbab4"), "StudentId": 101, "StudentSubject": "MySQL" }
{ "_id": ObjectId("5e481cb11627c0c63e7dbab5"), "StudentId": 102, "StudentSubject": "Java" }
{ "_id": ObjectId("5e481cb21627c0c63e7dbab6"), "StudentId": 103, "StudentSubject": "MongoDB" }
{ "_id": ObjectId("5e481cb21627c0c63e7dbab7"), "StudentId": 104, "StudentSubject": "C" }
केवल StudentSubject चुनना (StudentId और _id छिपाना)
> db.demo269.find({},{ "StudentId": 0, _id: 0 });
परिणाम
{ "StudentSubject": "MySQL" }
{ "StudentSubject": "Java" }
{ "StudentSubject": "MongoDB" }
{ "StudentSubject": "C" }
मुख्य बिंदु
- प्रोजेक्शन ऑब्जेक्ट: find() का दूसरा पैरामीटर
- 0 मान: फील्ड को बाहर करता है (exclude)
- 1 मान: फील्ड को शामिल करता है (include)
- _id डिफ़ॉल्ट रूप से शामिल होता है: इसे छिपाने के लिए स्पष्ट रूप से _id: 0 सेट करें
- आप शामिल और बाहर करने वाले फील्ड्स को मिश्रित नहीं कर सकते (केवल _id अपवाद है)
यह नेटवर्क ट्रैफिक कम करता है और प्रदर्शन सुधारता है जब आपको केवल कुछ फील्ड्स की आवश्यकता होती है।