distinct() (قيم مميزة)

آخر تحديث: 2026-10-09

distinct() (قيم مميزة)

تُعيد distinct() كل قيمة فريدة لحقل معين في المجموعة، مثل `db.users.distinct('address.city')`. تُعيد مصفوفة قيم دون تكرار وليس مستندات كاملة — مفيدة لتعداد الفئات أو القيم المتاحة. لاحظ أن استدعاء distinct على حقول كبيرة غير مفهرسة قد يكون بطيئًا، والنتائج محدودة بحد BSON البالغ 16 ميجابايت.

الفئةالقراءة
إصدار MongoDB1.0+
لغة المثالmongosh (الطرفية)

📝 الصيغة

db.<collection>.distinct(<field>, <filter>)

⚙️ المعلمات

حقلاسم الحقل المراد إزالة تكراره؛ المسارات المنقوطة مثل 'address.city' تعمل.
شرط التصفيةاختياري. يرشّح المستندات قبل جمع القيم.

القيمة المرجعة:مصفوفة بالقيم المميزة؛ فارغة عندما لا يتطابق شيء.

▶ مثال

نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):

// distinct: سرد كل مدن المستخدمين البالغين
const cities = db.users.distinct(
  'address.city',
  { age: { $gt: 18 } }
)
cities

المخرجات:

[ 'Beijing', 'Shanghai', 'Guangzhou' ]

📌 ملاحظات

مزيد من الحالات العملية قريبًا.

📚 دروس ذات صلة

❓ الأسئلة الشائعة

Qكيف يختلف distinct عن $group في إزالة التكرار داخل التجميع؟
Aتُعيد distinct() مصفوفة بسيطة من القيم الفريدة؛ بينما يمكن لـ $group أيضًا العدّ والجمع والتجميع بطرائق أغنى.
Qهل يمكن أن يعمل distinct على حقول متداخلة؟
Aنعم — استخدم مسارًا منقّطًا، مثل db.users.distinct('address.city').
Qهل تفشل distinct عندما تكون النتائج ضخمة؟
Aإذا تجاوزت النتيجة حد BSON البالغ 16 ميجابايت يُرفع خطأ؛ انتقل إلى خط أنابيب $group للنتائج الكبيرة جدًا.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%