$sort (فرز المصفوفة عند التحديث)

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

$sort (فرز المصفوفة عند التحديث)

يرتب $sort كمعدِّل تحديث عناصر المصفوفة بعد $push. فالعبارة `{ $push: { scores: { $each: [85], $sort: -1 } } }` ترتب تنازليًا. تألفه مع $slice للفرز ثم القص، محتفظًا بأعلى N. هو معدِّل تحديث مصفوفة فقط، متميز عن طريقة الفرز sort() في الاستعلام.

الفئةمعدّل التحديث
إصدار MongoDB1.0+
لغة المثالmongosh (الطرفية)

📝 الصيغة

{ $push: { <array field>: { $each: [ <value> ], $sort: <1 or -1> } } }

⚙️ المعلمات

حقل مصفوفةحقل المصفوفة المراد ترتيبه.
اتجاه الفرز‏1 تصاعدي، ‏-1 تنازلي.

القيمة المرجعة:نتيجة التحديث

▶ مثال

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

// $sort: الفرز تنازليًا بعد الإلحاق
// 1 تصاعدي، -1 تنازلي
db.rankings.updateOne(
  { _id: 1 },
  { $push: { scores: { $each: [85], $sort: -1 } } }
)

// مع $slice: الإبقاء على أعلى 3
db.rankings.updateOne(
  { _id: 1 },
  { $push: { scores: { $each: [85], $sort: -1, $slice: 3 } } }
)

المخرجات:

// تُرتب scores تنازليًا بعد الإلحاق؛ الاستعلام الثاني يقصّها إلى أعلى 3

📌 ملاحظات

📚 دروس ذات صلة

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

Qما الفرق بين $sort في التحديث وsort() في الاستعلام؟
Aيرتب $sort في التحديث عناصر المصفوفة؛ بينما ترتب sort() المستندات المرجعة.
Qكيف يتألف $sort مع $slice؟
A$push: { $each: [...], $sort: -1, $slice: 10 } — رتب أولًا، ثم اقص.
Qهل يمكنه الفرز حسب حقل متداخل؟
Aنعم، يدعم $sort صيغة الكائن { field: 1 }.
Web-Tutorial.com

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

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

100%