$push (الإلحاق بالمصفوفة)
آخر تحديث: 2026-10-09
$push (الإلحاق بالمصفوفة)
يلحق $push عنصرًا أو أكثر بنهاية مصفوفة. `{ $push: { items: 'pen' } }`؛ ولعدة قيم دفعة واحدة ادمجه مع $each. كما يتألف مع $position (موضع الإدراج) و$slice (سقف الطول) و$sort (الترتيب) لصيانة متقدمة للمصفوفات. وهو عامل تحديث المصفوفات الأكثر استخدامًا.
| الفئة | تحديث المصفوفة |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $push: { <array field>: <value> } }
⚙️ المعلمات
| حقل مصفوفة | حقل المصفوفة المراد الإضافة إليه. |
|---|---|
| قيمة | القيمة المراد إلحاقها، أو الصيغة { $each: [...] }. |
القيمة المرجعة:نتيجة التحديث
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $push: إلحاق عنصر
// التكرارات مسموحة
db.carts.updateOne(
{ _id: 1 },
{ $push: { items: 'pen' } }
)
// إلحاق عدة عناصر دفعة واحدة
// يتطلب $each
db.carts.updateOne(
{ _id: 1 },
{ $push: { items: { $each: ['book', 'ruler'] } } }
)
المخرجات:
// يكتسب items القيمة pen ثم book وruler؛ التكرارات مسموحة
📌 ملاحظات
- يلحق في النهاية افتراضيًا؛ استخدم $addToSet لإزالة التكرارات
- الإلحاق الدفعي يتطلب $each
- اجمع $position/$slice/$sort للتحكم في الموضع والطول
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
استعلامات المصفوفات والوثائق المتداخلة
تجربة عملية: عمليات CRUD لنظام تعليقات المدونة
تحديث المستند: شرح مفصل لـ `updateOne` و`updateMany`
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qما الفرق بين $push و $addToSet؟
A$push يلحق ويسمح بالتكرارات؛ بينما يزيل $addToSet التكرارات أولًا.
Qهل يمكن لـ $push الإدراج في موضع محدد؟
Aنعم، عبر $position لضبط الفهرس.
Qهل يمكن لـ $push تحديد سقف طول المصفوفة؟
Aنعم، عبر $slice — مثل الإبقاء على آخر 10 فقط.