$eq (المساواة)

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

$eq (المساواة)

يقوم $eq باختيار المستندات التي تكون قيمة حقلها مساوية لقيمة محددة. وهو أكثر مسندات المطابقة التامة شيوعًا في MongoDB: فالعبارة `{ age: { $eq: 21 } }` تكافئ `{ age: 21 }`، لكن $eq يجعل نية المساواة صريحة، ويعمل أيضًا كعامل مقارنة في تعبيرات التجميع. لاحظ أن $eq حساس للنوع: فالسلسلة "21" لا تطابق الرقم 21. لاحظ أيضًا أن الصيغة الصريحة { $eq: /pattern/ } تطابق قيم BSON من نوع regex فقط، على خلاف الصيغة الضمنية { field: /pattern/ } التي تُجري مطابقة بالتعبير النمطي.

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

📝 الصيغة

{ <field>: { $eq: <value> } }

⚙️ المعلمات

حقلحقل المستند المراد مطابقته؛ المسارات المنقوطة تصل إلى الحقول المتداخلة (مثل "address.city").
قيمةالقيمة المراد مطابقتها. قد تكون قيمة حرفية أو تعبيرًا؛ وتتأثر بنوع BSON.

القيمة المرجعة:مؤشر المستندات المطابقة

▶ مثال

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

// $eq: مطابقة تامة للعمر 21
db.users.find({ age: { $eq: 21 } })

// المساواة الضمنية المكافئة
db.users.find({ age: 21 })

// حقل متداخل + حساسية النوع
db.users.find({ "address.city": { $eq: "Beijing" } })

المخرجات:

// يُرجع كل المستندات التي عمرها 21 بالضبط (من النوع الرقمي)
{ "_id": ObjectId("..."), "name": "Alice", "age": 21, "address": { "city": "Beijing" } }

📌 ملاحظات

📚 دروس ذات صلة

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

Qما الفرق بين $eq وكتابة { age: 21 } مباشرة؟
Aمتطابقتان وظيفيًا؛ $eq يجعل نية المساواة صريحة فقط ويُحسّن قابلية القراءة داخل تركيبات $and/$or.
Qهل يمكن لـ $eq مطابقة قيمة null؟
Aنعم. يطابق $eq: null المستندات التي يكون حقلها مفقودًا أو قيمته null. لمطابقة قيمة null الحرفية فقط، ادمج مع $type: 10 (Null).
Qكيف يتصرف $eq مع الحقول من نوع مصفوفة؟
Aيطابق إذا كان أي عنصر في المصفوفة يساوي القيمة (مكافئ لـ $elemMatch). للحصول على مطابقة تامة للمصفوفة بأكملها، استخدم حرفية المصفوفة مباشرة أو ادمج مع $size.
Web-Tutorial.com

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

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

100%