অবজেক্ট অ্যারে থেকে ইউনিক মান: distinct()
MongoDB-এ একটি অ্যারে অবজেক্টের নির্দিষ্ট ফিল্ডের সব ইউনিক (distinct) মান বের করতে distinct() মেথড ব্যবহার করা হয়।
নমুনা ডেটা তৈরি
> db.demo442.insertOne({
"Information": [
{ "FirstName": "John", "Age": 21 },
{ "FirstName": "Sam", "Age": 23 },
{ "FirstName": "John", "Age": 24 },
{ "FirstName": "Carol", "Age": 20 },
{ "FirstName": "Sam", "Age": 22 }
]
})
সমস্ত ডকুমেন্ট দেখানো
> db.demo442.find()
আউটপুট:
{ "_id": ObjectId("..."), "Information": [{ "FirstName": "John", "Age": 21 }, { "FirstName": "Sam", "Age": 23 }, { "FirstName": "John", "Age": 24 }, { "FirstName": "Carol", "Age": 20 }, { "FirstName": "Sam", "Age": 22 }] }
ডিস্টINCT মান বের করার কোয়েরি
> db.demo442.distinct("Information.FirstName")
ফলাফল:
[ "Carol", "John", "Sam" ]
ব্যাখ্যা
distinct("Information.FirstName"): ডট নোটেশন দিয়ে অ্যারে অবজেক্টেরFirstNameফিল্ড লক্ষ্য করা হয়েছে- MongoDB অটোমেটিক অ্যারেতে থাকা সব ডকুমেন্ট থেকে মান সংগ্রহ করে ডুপ্লিকেট সরিয়ে দেয়
- ফলাফল একটি অ্যারে হিসেবে রিটার্ন হয় (অ্যালফাবেটিক সর্টেড)
- বড় ডেটাসেটে ইন্ডেক্স থাকলে পারফরম্যান্স ভালো থাকে
নোট: distinct কমান্ড ১৬MB পর্যন্ত ফলাফল রিটার্ন করতে পারে। বড় ফলাফলের জন্য অ্যাগ্রিগেশন ($group) ব্যবহার করুন।