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