MongoDB-এ distinct() ব্যবহার করে নেস্টেড ফিল্ডের অনন্য মান অ্যারে আনা
গভীর নেস্টেড স্ট্রাকচার থেকে শুধু নির্দিষ্ট ফিল্ড (যেমন ফোন নাম্বার) এর সব অনন্য মান অ্যারে হিসেবে বের করতে distinct("path.to.field") ব্যবহার করা হয়। ডট নোটেশন দিয়ে পাথ নির্দেশ করলে MongoDB স্বয়ংক্রিয়ভাবে ট্রাভার্স করে।
উদাহরণ: ডেটা ইনসার্ট
> db.demo166.insertOne({"details" : { "UserName" : "Chris", "UserAge":29, "PhoneDetails" : { "PhoneNumber" : "98646463533" } } });
{ "acknowledged" : true, "insertedId" : ObjectId("5e368b159e4f06af551997cf") }
> db.demo166.insertOne({"details" : { "UserName" : "David", "UserAge":21, "PhoneDetails" : { "PhoneNumber" : "87664534654" } } });
{ "acknowledged" : true, "insertedId" : ObjectId("5e368b159e4f06af551997d0") }
সব ডকুমেন্ট দেখানো
> db.demo166.find();
আউটপুট:
{ "_id" : ObjectId("5e368b159e4f06af551997cf"), "details" : { "UserName" : "Chris", "UserAge" : 29, "PhoneDetails" : { "PhoneNumber" : "98646463533" } } }
{ "_id" : ObjectId("5e368b159e4f06af551997d0"), "details" : { "UserName" : "David", "UserAge" : 21, "PhoneDetails" : { "PhoneNumber" : "87664534654" } } }
distinct কোয়ারি (ফোন নাম্বার অ্যারে)
> db.demo166.distinct("details.PhoneDetails.PhoneNumber");
আউটপুট:
[ "98646463533", "87664534654" ]
ব্যাখ্যা
"details.PhoneDetails.PhoneNumber"— ডট নোটেশন দিয়ে নেস্টেড পাথ। MongoDB অটোমেটিক্যালি অবজেক্ট ট্রাভার্স করে।- ফলাফল স্ট্রিং অ্যারে হিসেবে আসে, ডুপ্লিকেট থাকলে একবারই থাকবে।
- এটি অ্যারে ফিল্ডও হ্যান্ডেল করতে পারে (অ্যারেতে থাকা প্রতিটি উপাদানের ভেতরও খুঁজে বের করে)।
ব্যবহার ক্ষেত্র: ড্রপডাউন লিস্ট, অটোকম্প্লিট, অ্যানালিটিক্স ড্যাশবোর্ডের জন্য দ্রুত মান লিস্ট বের করতে।