$slice (إسقاط جزء من المصفوفة)

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

$slice (إسقاط جزء من المصفوفة)

يُرجع $slice في الإسقاط جزءًا من حقل مصفوفة دون تعديل المستند. فالعبارة `{ tags: { $slice: 2 } }` تُرجع أول عنصرين؛ و`{ tags: { $slice: [1, 3] } }` تتخطى 1 وتأخذ 3. شائع لصفحات القوائم التي تعرض أول تعليقات أو مرفقات قليلة. يتشارك الاسم مع معدِّل التحديث $slice، لكنه يخدم غرضًا مختلفًا.

الفئةالإسقاط
إصدار MongoDB2.4+
لغة المثالmongosh (الطرفية)

📝 الصيغة

{ <array field>: { $slice: <count> } } or { <array field>: { $slice: [ <skip>, <count> ] } }

⚙️ المعلمات

حقل مصفوفةحقل المصفوفة المراد تقطيعه.
عدد أو مصفوفةعدد لأول N عنصر، أو [skip, count] للتخطي ثم الأخذ.

القيمة المرجعة:مستندات مُسقَطة مع المجموعة الفرعية المطلوبة من المصفوفة

▶ مثال

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

// $slice: إرجاع أول 3 وسوم فقط
db.articles.find(
  { _id: 1 },
  { title: 1, tags: { $slice: 3 } }
)

// تخطي 1 وأخذ 2
db.articles.find(
  { _id: 1 },
  { comments: { $slice: [1, 2] } }
)

المخرجات:

// يُرجع العنوان وأول 3 وسوم؛ الاستعلام الثاني يتخطى تعليقًا واحدًا ويأخذ 2

📌 ملاحظات

📚 دروس ذات صلة

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

Qهل $slice في الإسقاط هو نفسه $slice في التحديث؟
Aلا. يشكّل $slice في الإسقاط النتيجة؛ بينما يحدّ $slice في التحديث طول المصفوفة بعد $push.
Qكيف آخذ آخر عناصر مصفوفة؟
Aاستخدم قيمة سالبة: { tags: { $slice: -3 } } يأخذ آخر 3.
Qهل يمكن لـ $slice الدمج مع إسقاطات أخرى؟
Aنعم، ما دامت لا تتعارض.
Web-Tutorial.com

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

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

100%