$set (تعيين الحقول)
آخر تحديث: 2026-10-09
$set (تعيين الحقول)
$set اسم مستعار لـ $addFields: يضيف أو يستبدل حقولًا على كل مستند مع الإبقاء على كل شيء آخر. استخدمه في منتصف خط الأنابيب لإرفاق قيم محسوبة أو ثوابت أو نتائج تعبير. مقدَّم في MongoDB 3.4، وهو قابل للتبادل تمامًا مع $addFields؛ لاحظ أنه يتشارك الاسم مع عامل التحديث $set.
| الفئة | المراحل الأساسية |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $set: { <field>: <expression>, ... } }
⚙️ المعلمات
| حقل | أسماء الحقول مربوطة بتعبيرات تجميع أو قيم ثابتة. |
|---|
القيمة المرجعة:تدفق مستندات مع تعيين الحقول
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $set: إضافة حالة ثابتة وتحويل نوع amount
db.orders.aggregate([
{ $set: { status: 'PENDING', amount: { $toDouble: '$amount' } } }
])
المخرجات:
// الحقول الأصلية محفوظة؛ status ثابت وamount محوَّل إلى double
📌 ملاحظات
- $set مكافئ تمامًا لـ $addFields
- _id وكل الحقول غير المذكورة تبقى دون مساس
- لا يمكنك الرجوع إلى الحقول المعيّنة في نفس المرحلة
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qهل يجب استخدام $set أم $addFields؟
Aكلاهما يعمل؛ $addFields أكثر شيوعًا، بينما قد يُخلط $set مع عامل التحديث.
Qهل يمكن لـ $set تعيين حقول مضمّنة؟
Aنعم، عبر مسارات نقطية، مثل { $set: { 'addr.city': 'SH' } }.
Qهل يحذف $set الحقول؟
Aلا، يضيف أو يستبدل فقط؛ استخدم $unset لإزالة الحقول.