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