$substrCP (سلسلة فرعية بنقاط الرموز)

آخر تحديث: 2026-10-09

$substrCP (سلسلة فرعية بنقاط الرموز)

يستخرج $substrCP سلسلة فرعية معدًّا المواضع بنقاط رموز يونيكود (تقريبًا الأحرف). إنه آمن تمامًا للنصوص متعددة البايت مثل الصينية واليابانية والرموز التعبيرية، مما يجعله العامل الموصى به للنصوص المرئية للمستخدم. مقارنةً بـ $substrBytes الذي يعدّ البايتات، تتطابق دلالاته مع طريقة عدّ البشر للأحرف. البداية السالبة تُرجع سلسلة فارغة؛ والطول السالب يُرجع البقية.

الفئةالنص
إصدار MongoDB1.0+
لغة المثالmongosh (الطرفية)

📝 الصيغة

{ $substrCP: [ <string-expression>, <code-point-start>, <code-point-length> ] }

⚙️ المعلمات

سلسلة نصيةمطلوب؛ تعبير النص المصدر.
موضع البداية بنقاط الكودعدد صحيح مطلوب بنقاط الكود، يبدأ من الصفر.
الطول بنقاط الكودعدد صحيح مطلوب بنقاط الكود.

القيمة المرجعة:النص الفرعي المستخرج؛ null إذا كان أي معامل null.

▶ مثال

نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):

// $substrCP: أول حرفين من الأسماء المستعارة
db.users.aggregate([
  { $project: { nickname: { $substrCP: [ '$name', 0, 2 ] } } }
])

المخرجات:

{ "_id": 1, "nickname": "أحمد" }
{ "_id": 2, "nickname": "ليلى" }

📌 ملاحظات

مزيد من الحالات العملية قريبًا.

📚 دروس ذات صلة

❓ الأسئلة الشائعة

Qكم عدد أحرف الرمز التعبيري؟
Aمعظم الرموز التعبيرية نقطة رمز واحدة (تُعدّ 1)، لكن المركبة قد تأخذ عدة نقاط.
Qمتى أختار $substrCP على $substrBytes؟
Aاستخدم $substrCP للنصوص المرئية للمستخدم؛ و $substrBytes لعدّات البايتات الدقيقة.
Qماذا لو تجاوز الطول السلسلة؟
Aيُرجع ما تبقى — دون خطأ.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%