Mongodb: كيفية استخدام الدالة $susbtr


يمكنك استخدام الدالة $substr في MongoDB لاستخراج سلسلة فرعية من سلسلة.

تستخدم هذه الوظيفة بناء الجملة الأساسي التالي:

 db.myCollection.aggregate([
  { $project : {substring: { $substr : [ " $fullstring ", 0, 4 ] }}}
])

يستخرج هذا المثال تحديدًا جميع الأحرف الأربعة من الحقل المسمى “fullString” بدءًا من الموضع 0.

يوضح المثال التالي كيفية استخدام هذه الصيغة عمليًا مع عملية بيع جماعية مع المستندات التالية:

 db.sales.insertOne({yearMonth: 201702, amount: 40 })
db.sales.insertOne({yearMonth: 201802, amount: 32 })
db.sales.insertOne({yearMonth: 201806, amount: 19 })
db.sales.insertOne({yearMonth: 201910, amount: 29 })
db.sales.insertOne({yearMonth: 201907, amount: 35 })

مثال: كيفية استخدام الدالة $susbtr في MongoDB

يمكننا استخدام الكود التالي لاستخراج الأحرف الأربعة الأولى من حقل “yearMonth” وعرضها في حقل جديد يسمى “year”:

 db.sales.aggregate([
  { $project : {year: { $substr : [ " $yearMonth ", 0, 4 ] }}}
])

ينتج عن هذا الكود النتيجة التالية:

 { _id: ObjectId("620145544cb04b772fd7a929"), year: '2017' }
{ _id: ObjectId("620145544cb04b772fd7a92a"), year: '2018' }
{ _id: ObjectId("620145544cb04b772fd7a92b"), year: '2018' }
{ _id: ObjectId("620145544cb04b772fd7a92c"), year: '2019' }
{ _id: ObjectId("620145544cb04b772fd7a92d"), year: '2019' }

لاحظ أنه يتم عرض الأحرف الأربعة الأولى من حقل “الشهر والسنة” لكل مستند في حقل جديد يسمى “السنة”.

من المهم ملاحظة أن هذا الرمز يعرض السلسلة الفرعية فقط.

لإضافة حقل جديد فعليًا إلى المجموعة التي تحتوي على هذه السلسلة الفرعية، نحتاج إلى استخدام الدالة $merge كما يلي:

 db.sales.aggregate([
  { $project : {year: { $substr : [ " $yearMonth ", 0, 4 ] }}},
  { $merge : "sales" }
])

وهذا ما تبدو عليه المجموعة المحدثة الآن:

 { _id: ObjectId("620145544cb04b772fd7a929"),
  yearMonth: 201702,
  amount: 40,
  year: '2017' }
{ _id: ObjectId("620145544cb04b772fd7a92a"),
  yearMonth: 201802,
  amount: 32,
  year: '2018' }
{ _id: ObjectId("620145544cb04b772fd7a92b"),
  yearMonth: 201806,
  amount: 19,
  year: '2018' }
{ _id: ObjectId("620145544cb04b772fd7a92c"),
  yearMonth: 201910,
  amount: 29,
  year: '2019' }
{ _id: ObjectId("620145544cb04b772fd7a92d"),
  yearMonth: 201907,
  amount: 35,
  year: '2019' }

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

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

مصادر إضافية

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

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

Add a Comment

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