$strcasecmp (مقارنة غير حساسة لحالة الأحرف)
آخر تحديث: 2026-10-09
$strcasecmp (مقارنة غير حساسة لحالة الأحرف)
يقارن $strcasecmp سلسلتين دون حساسية لحالة الأحرف ويُرجع -1 أو 0 أو 1 — مفيد للفرز، التجميع، أو المنطق الشرطي. يقبل السلاسل النصية فقط؛ والأنواع الأخرى تُسبب خطأً. لاحظ أنه يقارن بترتيب نقاط الرموز لا بترتيب التجميع اللغوي الطبيعي: فالصينية تُرتَّب بنقاط رموز يونيكود، وقد يختلف ذلك عن ترتيب بينيين أو القاموس. أي وسيطة فارغة تُرجع null.
| الفئة | النص |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $strcasecmp: [ <string-expression1>, <string-expression2> ] }
⚙️ المعلمات
| سلسلة 1 | مطلوب؛ تعبير النص الأول. |
|---|---|
| سلسلة 2 | مطلوب؛ تعبير النص الثاني. |
القيمة المرجعة:نتيجة المقارنة: -1 أو 0 أو 1؛ null إذا كان أي معامل null.
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $strcasecmp: المقارنة مع alice تجاهلًا لحالة الأحرف
db.users.aggregate([
{ $project: { cmp: { $strcasecmp: [ '$name', 'alice' ] } } }
])
المخرجات:
{ "_id": 1, "cmp": 0 }
{ "_id": 2, "cmp": 1 }
📌 ملاحظات
- غير حساس لحالة الأحرف: 'ALICE' مقابل 'alice' تُرجع 0
- المدخل غير النصي يُسبب خطأً — حوّله بـ $toString أولًا
- تطابق الإشارة اتجاه الفرز، لذا يعمل كمساعد فرز
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qماذا تعني 0؟
Aالسلسلتان متساويتان تجاهلًا لحالة الأحرف.
Qهل يعمل مع الصينية؟
Aنعم، لكنه يقارن نقاط الرموز لا ترتيب بينيين أو القاموس.
Qما الفرق عن $cmp؟
A$cmp يقارن مع مراعاة حالة الأحرف بالترتيب الثنائي؛ و $strcasecmp يتجاهلها.