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: كيفية استبدال السلاسل في