allowDiskUse() (السماح بالقرص للترتيب)
آخر تحديث: 2026-10-09
allowDiskUse() (السماح بالقرص للترتيب)
تسمح allowDiskUse() لمؤشر بالتفريغ إلى القرص للعمليات الحاجزة مثل sort() التي تطلب ذاكرة كبيرة: `db.users.find().sort({ age: -1 }).allowDiskUse()`. الترتيبات فوق حد الذاكرة 100 ميجابايت ترفع خطأً افتراضيًا؛ مع هذه العلامة تستقر النتائج الوسيطة في ملفات مؤقتة. وتنقذ الترتيبات والتجميعات الضخمة بكلفة أداء إدخال/إخراج القرص.
| الفئة | المؤشر |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
db.<collection>.find(<filter>).sort(<sortKey>).allowDiskUse()
القيمة المرجعة:المؤشر مع تمكين الكتابة على القرص (قابل للتسلسل).
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// allowDiskUse: السماح بالتفريغ إلى القرص لترتيب ضخم
const result = db.logs.find({ level: 'error' })
.sort({ timestamp: -1 })
.allowDiskUse()
.toArray()
result.length
المخرجات:
1200
📌 ملاحظات
- حد الذاكرة الافتراضي لكل ترتيب 100 ميجابايت؛ ما فوقه يرفع خطأً
- مع التفريغ إلى القرص تذهب النتائج الوسيطة إلى ملفات مؤقتة — أبطأ
- خط أنابيب التجميع يملك خيار allowDiskUse مكافئًا
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qمتى أحتاج allowDiskUse؟
Aفعّلها عندما يتجاوز ترتيب أو تجميع حد الذاكرة 100 ميجابايت ويرفع خطأً، مثل ترتيب مجموعة ضخمة بأكملها.
Qهل تضر allowDiskUse بالأداء؟
Aنعم — تفريغ القرص أبطأ بكثير من العمل في الذاكرة الخالصة؛ فضّل الترتيبات المسنودة بفهرس لتجنبها.
Qهل allowDiskUse هي نفسها خيار التجميع؟
Aالدلالة نفسها — تفريغ الوسائط إلى القرص؛ طريقة المؤشر تخدم find().sort()، وخيار التجميع يخدم aggregate().