MongoDB-এ ক্যোয়ারি ফলাফল থেকে নির্দিষ্ট ফিল্ডের মানগুলো একটি জাভাস্ক্রিপ্ট অ্যারে আকারে পেতে map() ফাংশন ব্যবহার করুন।
উদাহরণ
কয়েকটি ডকুমেন্ট তৈরি করুন:
> db.listOfSpecificValuesDemo.insertOne({"StudentName":"John"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefcc8fef71edecf6a1f6bb") }
> db.listOfSpecificValuesDemo.insertOne({"StudentName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefcc94ef71edecf6a1f6bc") }
> db.listOfSpecificValuesDemo.insertOne({"StudentName":"Robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefcc98ef71edecf6a1f6bd") }
> db.listOfSpecificValuesDemo.insertOne({"StudentName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefcc9cef71edecf6a1f6be") }
সকল ডকুমেন্ট দেখুন:
> db.listOfSpecificValuesDemo.find();
আউটপুট:
{ "_id" : ObjectId("5cefcc8fef71edecf6a1f6bb"), "StudentName" : "John" }
{ "_id" : ObjectId("5cefcc94ef71edecf6a1f6bc"), "StudentName" : "Chris" }
{ "_id" : ObjectId("5cefcc98ef71edecf6a1f6bd"), "StudentName" : "Robert" }
{ "_id" : ObjectId("5cefcc9cef71edecf6a1f6be"), "StudentName" : "David" }
শুধু StudentName গুলো অ্যারে আকারে বের করা
> db.listOfSpecificValuesDemo.find().map(function(myDocument) {
return myDocument.StudentName;
});
আউটপুট:
[ "John", "Chris", "Robert", "David" ]
ব্যাখ্যা:
find()— কার্সার রিটার্ন করে।map(function(doc) { return doc.field; })— কার্সারের প্রতিটি ডকুমেন্টের জন্য ফাংশন চালিয়ে ফিল্ড মান সংগ্রহ করে অ্যারে বানায়।- এটি শেল-সাইড অপারেশন, সার্ভার-সাইড নয়। বড় ডেটাসেটে মেমরি সমস্যা হতে পারে।
সার্ভার-সাইড বিকল্প (এগ্রিগেশন):
db.listOfSpecificValuesDemo.aggregate([
{ $group: { _id: null, names: { $push: "$StudentName" } } },
{ $project: { _id: 0, names: 1 } }
]);
আউটপুট: { "names" : [ "John", "Chris", "Robert", "David" ] }