MongoDB শেলে find() করসরের ওপর forEach() মেথড ব্যবহার করে প্রতিটি ডকুমেন্টে ইটারেট করা এবং print() ফাংশন দিয়ে নির্দিষ্ট ফিল্ড (যেমন UserEmailId) আউটপুট করা যায়।
উদাহরণ: কালেকশন ও ডেটা তৈরি
> db.demo690.insertOne({ "UserName": "John", "UserEmailId": "John@gmail.com" });
{ "acknowledged" : true, "insertedId" : ObjectId("5ea6db31551299a9f98c939c") }
> db.demo690.insertOne({ "UserName": "Bob", "UserEmailId": "Bob@gmail.com" });
{ "acknowledged" : true, "insertedId" : ObjectId("5ea6db3c551299a9f98c939d") }
> db.demo690.insertOne({ "UserName": "David", "UserEmailId": "David@gmail.com" });
{ "acknowledged" : true, "insertedId" : ObjectId("5ea6db47551299a9f98c939e") }
সব ডকুমেন্ট দেখানো
> db.demo690.find();
আউটপুট:
{ "_id" : ObjectId("5ea6db31551299a9f98c939c"), "UserName" : "John", "UserEmailId" : "John@gmail.com" }
{ "_id" : ObjectId("5ea6db3c551299a9f98c939d"), "UserName" : "Bob", "UserEmailId" : "Bob@gmail.com" }
{ "_id" : ObjectId("5ea6db47551299a9f98c939e"), "UserName" : "David", "UserEmailId" : "David@gmail.com" }
forEach() দিয়ে ইমেইল আইডি প্রিন্ট করা
> db.demo690.find().forEach(function(document) {
print(document.UserEmailId);
});
আউটপুট
John@gmail.com Bob@gmail.com David@gmail.com
বিকল্প: প্রজেকশন দিয়ে শুধু ইমেইল ফিল্ড রিটার্ন করা
> db.demo690.find({}, { UserEmailId: 1, _id: 0 }).forEach(function(doc) {
print(doc.UserEmailId);
});
মূল পয়েন্টসমূহ
cursor.forEach(function(doc) { ... })— করসরের প্রতিটি ডকুমেন্টে ফাংশন এক্সিকিউট করে।print()— MongoDB শেলে কনসোলে আউটপুট প্রিন্ট করে (নিউলাইন যোগ করে)۔printjson()— পুরো ডকুমেন্ট JSON ফরম্যাটে প্রিন্ট করে।- প্রজেকশন
{ UserEmailId: 1, _id: 0 }দিয়ে শুধু প্রয়োজনীয় ফিল্ড নেওয়া নেটওয়ার্ক ও মেমরি বাঁচায়। - বড় ডেটাসেটে
forEachমেমরি-এফিশিয়েন্ট (স্ট্রিমিং)।