hint() (فرض فهرس)
آخر تحديث: 2026-10-09
hint() (فرض فهرس)
تفرض hint() على استعلام استخدام فهرس محدد: `db.users.find({ age: { $gt: 20 } }).hint({ age: 1 })`, مرورًا بمفتاح الفهرس أو اسمه. عادةً يختار المحسِّن جيدًا، لكن hint() يمكنها تجاوز الاختيارات السيئة عندما يكون توزيع البيانات منحرفًا. استخدمها باعتدال في الإنتاج وأعد التحقق من بقاء الفهرس ملائمًا.
| الفئة | المؤشر |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
db.<collection>.find(<filter>).hint(<indexKeyOrName>)
⚙️ المعلمات
| مفتاح الفهرس أو اسمه | الفهرس المراد فرضه، مثل {age: 1} أو 'age_1'. |
|---|
القيمة المرجعة:المؤشر مع فرض الفهرس (قابل للتسلسل).
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// hint: فرض فهرس age_1
const result = db.users.find({ age: { $gt: 20 } })
.hint({ age: 1 })
.toArray()
result.length
المخرجات:
35
📌 ملاحظات
- يُرفع خطأ عندما لا يوجد الفهرس المفروض
- hint() ليست مثالية إلى الأبد؛ أعد التقييم مع تغير البيانات
- hint({$natural: 1}) تفرض فحص المجموعة
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qكيف ترتبط hint بالفهارس؟
Aتفرض hint() استعلامًا على فهرس معيّن متجاوزة اختيار المحسِّن — إصلاح عندما يختار المحسِّن خطأً.
Qماذا لو لم يوجد الفهرس المفروض؟
Aيرفع الاستعلام خطأً فورًا — لا يرتد إلى فهرس آخر.
Qكيف أفرض فحص مجموعة بـ hint؟
Aمرّر hint({$natural: 1})، الذي يفحص المستندات بالترتيب الفيزيائي.