$substr (سلسلة فرعية)

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

$substr (سلسلة فرعية)

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

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

📝 الصيغة

{ $substr: [ <string-expression>, <start>, <length> ] }

⚙️ المعلمات

سلسلة نصيةمطلوب؛ تعبير النص المصدر.
موضع البدايةعدد صحيح مطلوب يبدأ من الصفر؛ والقيمة السالبة تُنتج نصًا فارغًا.
الطولعدد صحيح مطلوب؛ القيمة السالبة تُرجع من start إلى النهاية.

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

▶ مثال

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

// $substr: أول 3 أرقام من أرقام الهواتف
db.users.aggregate([
  { $project: { code: { $substr: [ '$phone', 0, 3 ] } } }
])

المخرجات:

{ "_id": 1, "code": "138" }
{ "_id": 2, "code": "139" }

📌 ملاحظات

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

📚 دروس ذات صلة

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

Qهل $substr و $substrCP متماثلان؟
Aمنذ 3.4 أصبح $substr اسمًا بديلًا لـ $substrCP — سلوك متطابق.
Qهل يتسبب قص الصينية في نص مشوّه؟
Aلا — يعدّ نقاط الرموز، لذا الصينية آمنة.
Qهل يمكن أن تكون start سالبة؟
Aنعم — البداية السالبة تُرجع سلسلة فارغة.
Web-Tutorial.com

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

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

100%