$indexOfCP (فهرس السلسلة الفرعية بنقاط الرموز)
آخر تحديث: 2026-10-09
$indexOfCP (فهرس السلسلة الفرعية بنقاط الرموز)
يُرجع $indexOfCP فهرس نقطة الرمز (الحرف) لأول ظهور لسلسلة فرعية، أو -1 عند عدم العثور. يعدّ بالأحرف، بما يطابق الإدراك البشري ويبقى آمنًا مع الصينية والرموز التعبيرية — الخيار المفضّل للعمل النصي. يحدّان start و end الاختياريان النافذة، أيضًا بنقاط الرموز. يدمج مع $substrCP و $strLenCP للتقطيع. أي وسيطة فارغة تُرجع null.
| الفئة | النص |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $indexOfCP: [ <string-expression>, <substring>, <start>, <end> ] }
⚙️ المعلمات
| سلسلة نصية | مطلوب؛ النص المصدر. |
|---|---|
| سلسلة فرعية | مطلوب؛ النص الفرعي المراد إيجاده. |
| البداية/النهاية | نافذة البحث اختيارية، بنقاط الكود. |
القيمة المرجعة:فهرس نقطة الكود (يبدأ من الصفر)؛ -1 عند عدم العثور عليه؛ وnull إذا كان أي معامل null.
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $indexOfCP: تحديد موقع @ في رسائل البريد
db.users.aggregate([
{ $project: { at: { $indexOfCP: [ '$email', '@' ] } } }
])
المخرجات:
{ "_id": 1, "at": 6 }
{ "_id": 2, "at": -1 }
📌 ملاحظات
- يبدأ من الصفر؛ الحرف الصيني والرمز التعبيري يعدّ كلٌّ منهما 1
- يُدمج عادةً مع $substrCP و $strLenCP للتقطيع
- start/end خارج طول السلسلة تُثبَّت عند الحدود — دون خطأ
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qماذا يُرجع عند عدم العثور؟
A-1.
Qهل يطابق $indexOfBytes؟
Aنفسه مع ASCII الخالص؛ ويختلف مع الصينية — $indexOfCP يعطي مواضع الأحرف.
Qماذا عن السلسلة الفرعية الفارغة؟
Aيُرجع فهرس البداية (0 افتراضيًا)، كما تفعل معظم اللغات.