sort() (ترتيب النتائج)
آخر تحديث: 2026-10-09
sort() (ترتيب النتائج)
ترتّب sort() نتائج المؤشر وفق حقول معطاة: `db.users.find().sort({ age: 1, name: -1 })`. القيم 1 للتصاعدي و-1 للتنازلي، وتُطبَّق حقلًا بعد حقل. يعمل الترتيب على الخادم — وهو أسرع ما يكون عندما يسنده فهرس؛ والحالات غير المسنودة بفهرس تُرتَّب في الذاكرة وقد تصطدم بحد 100 ميجابايت.
| الفئة | المؤشر |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
db.<collection>.find(<filter>).sort(<sortKey>)
⚙️ المعلمات
| مفتاح الفرز | ربط الحقول بالاتجاه، مثل {age: 1, name: -1}. |
|---|
القيمة المرجعة:المؤشر المرتَّب حسب مفتاح الترتيب (قابل للتسلسل).
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// sort: عمر تصاعدي ثم اسم تنازلي، أخذ 3
const result = db.users.find()
.sort({ age: 1, name: -1 })
.limit(3)
.toArray()
result
المخرجات:
[
{ _id: ObjectId('64c8a1b20000000000000001'), name: 'Alice', age: 21 },
{ _id: ObjectId('64c8a1b20000000000000002'), name: 'Bob', age: 25 }
]
📌 ملاحظات
- 1 تصاعدي و-1 تنازلي؛ الحقول المتعددة تُطبَّق من اليسار إلى اليمين
- الترتيبات المسنودة بفهرس هي الأفضل أداءً
- الترتيبات بلا فهرس فوق حد الذاكرة 100 ميجابايت ترفع خطأً؛ allowDiskUse() تساعد
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qما معنى 1 و-1 في sort؟
A1 تصاعدي و-1 تنازلي — {age: -1} يرتّب الأقدم أولًا.
Qكيف أرتب حسب حقول متعددة؟
Aمرّر عدة حقول في مفتاح الترتيب، مثل {age: 1, name: -1} — العمر أولًا ثم الاسم.
Qماذا لو كان ترتيبي بطيئًا؟
Aأضف فهرسًا مركّبًا على حقول الترتيب؛ الترتيبات بلا فهرس تستخدم الذاكرة، وallowDiskUse() تساعد مع النتائج الضخمة.