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