MongoDB शेल में forEach() का उपयोग करके डॉक्यूमेंट फील्ड वैल्यू प्रिंट करना
MongoDB शेल में, आप कर्सर पर forEach() का उपयोग करके डॉक्यूमेंट्स पर पुनरावृति कर सकते हैं और विशिष्ट फील्ड वैल्यूज़ प्रिंट कर सकते हैं। यह स्क्रिप्टिंग, डीबगिंग, या फॉर्मेटेड आउटपुट उत्पन्न करने के लिए उपयोगी है।
नमूना डेटा बनाना
> db.printDocuementValueDemo.insertOne({"InstructorName":"John Smith"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd6804f7924bb85b3f48950") }
> db.printDocuementValueDemo.insertOne({"InstructorName":"Sam Williams"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd680577924bb85b3f48951") }
> db.printDocuementValueDemo.insertOne({"InstructorName":"David Miller"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd680637924bb85b3f48952") }
सभी डॉक्यूमेंट्स देखना
> db.printDocuementValueDemo.find().pretty();
आउटपुट:
{ "_id" : ObjectId("5cd6804f7924bb85b3f48950"), "InstructorName" : "John Smith" }
{ "_id" : ObjectId("5cd680577924bb85b3f48951"), "InstructorName" : "Sam Williams" }
{ "_id" : ObjectId("5cd680637924bb85b3f48952"), "InstructorName" : "David Miller" }
विशिष्ट डॉक्यूमेंट के लिए फील्ड वैल्यू प्रिंट करना
> db.printDocuementValueDemo.find(
{ _id : ObjectId("5cd680577924bb85b3f48951") },
{ InstructorName: 1, _id: 0 }
).forEach(function(myDocument) {
print(myDocument.InstructorName);
});
आउटपुट:
Sam Williams
व्याख्या
find(query, projection)-_idको छोड़कर केवलInstructorNameफील्ड प्रोजेक्ट करता है।forEach(function(doc) { ... })- प्रत्येक मिलान करने वाले डॉक्यूमेंट पर पुनरावृति करता है।print()- MongoDB शेल में कंसोल पर आउटपुट लिखता है।
सभी डॉक्यूमेंट्स के लिए सभी नाम प्रिंट करने का वैकल्पिक तरीका
> db.printDocuementValueDemo.find({}, { InstructorName: 1, _id: 0 })
.forEach(doc => print(doc.InstructorName));
मुख्य बिंदु
- नेटवर्क ट्रांसफर और प्रोसेसिंग को कम करने के लिए प्रोजेक्शन (
{ field: 1, _id: 0 }) का उपयोग करें। forEach()कर्सर पर काम करता है; बड़े परिणाम सेट के लिए, बैच प्रोसेसिंग पर विचार करें।- आधुनिक MongoDB शेल (mongosh) में, एरो फंक्शन्स (
doc => ...) समर्थित हैं।