$strLenBytes (الطول بالبايتات)
آخر تحديث: 2026-10-09
$strLenBytes (الطول بالبايتات)
يُرجع $strLenBytes طول سلسلة نصية ببايتات UTF-8 — أداة أساسية لتقدير التخزين وحدود أحجام الحقول. في ASCII الخالص تساوي البايتات الأحرف؛ وتأخذ الصينية 3 بايتات لكل حرف والرموز التعبيرية 4 عادةً. يقبل السلاسل النصية فقط؛ والأنواع الأخرى تُسبب خطأً، لذا حوّلها بـ $toString أولًا. قد تختلف النتائج عن $strLenCP القائم على نقاط الرموز.
| الفئة | النص |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $strLenBytes: <string-expression> }
⚙️ المعلمات
| سلسلة نصية | مطلوب؛ تعبير النص المراد قياسه. |
|---|
القيمة المرجعة:طول البايت بترميز UTF-8 كعدد صحيح.
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $strLenBytes: حجم عناوين المقالات بالبايتات
db.articles.aggregate([
{ $project: { sizeBytes: { $strLenBytes: '$title' } } }
])
المخرجات:
{ "_id": 1, "sizeBytes": 42 }
{ "_id": 2, "sizeBytes": 36 }
📌 ملاحظات
- الحرف الصيني 3 بايتات — لا عدّ الأحرف
- المدخل غير النصي يُسبب خطأً — حوّله بـ $toString
- تختلف النتائج عن $strLenCP عند وجود أحرف متعددة البايت
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qكم بايتًا يأخذ الحرف الصيني؟
A3 بايتات تحت UTF-8.
Qمتى يختلف عن $strLenCP؟
Aمع الصينية أو الرموز التعبيرية يختلفان؛ ويطابقان في ASCII الخالص.
Qهل يمكنه فرض حدود أحجام الحقول؟
Aنعم — اجمع مع $match لتصفية السجلات فوق الحد.