Mongodb: كيفية العثور على طول السلسلة


يمكنك استخدام الطرق التالية للعثور على طول السلسلة في MongoDB واستخدام طول السلسلة في الاستعلامات:

الطريقة الأولى: ابحث عن طول السلسلة

 db.myCollection.aggregate([
  { $project : {
        "name": 1,
        "length": { $strLenCP : " $name " }
  }}
])

الطريقة الثانية: البحث عن المستندات التي تكون سلسلتها أكبر من طول معين

 db.myCollection.find({ 
    "name": { $exists : true },
    $expr : { $gt : [ { $strLenCP : " $name " }, 14 ] } 
})

توضح الأمثلة التالية كيفية استخدام كل طريقة مع فريق التحصيل مع المستندات التالية:

 db.teams.insertOne({name: " Dallas Mavs ", points: 31})
db.teams.insertOne({name: " San Antonio Spurs ", points: 22})
db.teams.insertOne({name: " Houston Rockets ", points: 19})
db.teams.insertOne({name: " Boston Celtics ", points: 26})
db.teams.insertOne({name: " Cleveland Cavs ", points: 33})

مثال 1: إيجاد طول سلسلة

يمكننا استخدام الكود التالي لحساب طول السلسلة في حقل “الاسم” لكل مستند:

 db.teams.aggregate([
  { $project : {
        "name": 1,
        "length": { $strLenCP : " $name " }
  }}
])

يُرجع هذا الرمز النتائج التالية:

 { _id: ObjectId("62014eff4cb04b772fd7a93d"),
  name: 'Dallas Mavs',
  length: 11 }
{ _id: ObjectId("62014eff4cb04b772fd7a93e"),
  name: 'San Antonio Spurs',
  length: 17 }
{ _id: ObjectId("62014eff4cb04b772fd7a93f"),
  name: 'Houston Rockets',
  length: 15 }
{ _id: ObjectId("62014eff4cb04b772fd7a940"),
  name: 'Boston Celtics',
  length: 14 }
{ _id: ObjectId("62014eff4cb04b772fd7a941"),
  name: 'Cleveland Cavs',
  length: 14 }

تعرض قيمة الطول طول السلسلة في عمود “الاسم”.

على سبيل المثال:

  • يبلغ طول سلسلة “دالاس مافز” 11 .
  • يبلغ طول سلسلة “سان أنطونيو سبيرز” 17 .

وما إلى ذلك وهلم جرا.

لاحظ أن الطول يحسب أيضًا المسافات الفارغة.

المثال 2: ابحث عن المستندات التي تكون سلسلتها أكبر من طول معين

يمكننا استخدام الكود التالي لإرجاع المستندات التي تكون سلسلتها في عمود “الاسم” أكبر من 14 فقط:

 db.teams.find({ 
    "name": { $exists : true },
    $expr : { $gt : [ { $strLenCP : " $name " }, 14 ] } 
})

يقوم هذا الاستعلام بإرجاع النتائج التالية:

 { _id: ObjectId("62014eff4cb04b772fd7a93e"),
  name: 'San Antonio Spurs',
  points: 22 }
{ _id: ObjectId("62014eff4cb04b772fd7a93f"),
  name: 'Houston Rockets',
  points: 19 }

لاحظ أن الفريقين الوحيدين اللذين تم إرجاعهما هما الفريقان اللذان يكون حقل “اسمهما” أكبر من 14 .

ملاحظة : يمكنك العثور على الوثائق الكاملة للوظيفة $strLenCP هنا .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في MongoDB:

MongoDB: كيفية تقسيم سلسلة إلى مجموعة من السلاسل الفرعية
MongoDB: كيفية ربط سلاسل من حقلين
MongoDB: كيفية استبدال السلاسل في

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *