distinct()
القيم الفريدة لحقل distinct()
distinct() ترجع مصفوفة بالقيم الفريدة (بدون تكرار) لحقل معيّن عبر المستندات المطابقة.
مفيدة لبناء قوائم فلترة سريعة، مثل جلب كل الفئات (categories) الموجودة فعليًّا في مجموعة منتجات، بدل تكرار المنطق يدويًّا. إذا كان الحقل مصفوفة، تُعامَل كل عنصر فيها كقيمة مستقلّة.
الصياغة
db.collection.distinct(<field>, <query>)
📄 مثال
db.products.distinct("category")
// ["إلكترونيات", "ملابس", "كتب"]
// مع فلتر: فقط الفئات ضمن المنتجات المتوفّرة
db.products.distinct("category", { inStock: true })أهم المعاملات
| المعامل | الوظيفة |
|---|---|
| field | اسم الحقل المراد استخراج قيمه الفريدة |
| query | فلتر لتقييد المستندات قبل الاستخراج (اختياري) |
💡 نصائح عملية
- فهرس على الحقل يجعل distinct() أسرع بكثير خصوصًا على مجموعات كبيرة
⚠️ أخطاء شائعة
- استخدامها كبديل لعدّ القيم — distinct() ترجع القيم نفسها لا عددها، تحتاج .length إن أردت العدد
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار MONGODB الكامل بالعربي.
📚 للتعمق التقني الكامل بالإنجليزية: MDN Web Docs