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