Mongodb: كيفية تقسيم سلسلة إلى مجموعة من السلاسل الفرعية
يمكنك استخدام بناء الجملة التالي لتقسيم سلسلة إلى مجموعة من السلاسل الفرعية في MongoDB:
db.myCollection.aggregate([ { $project : { split_field: { $split : [ " $field1 ", " " ] } } }, { $merge : "myCollection" } ])
يقوم هذا المثال تحديدًا بتقسيم السلسلة “field1” استنادًا إلى المسافات إلى حقل جديد يسمى “split_field” وإضافة الحقل الجديد إلى المجموعة المسماة myCollection .
يوضح المثال التالي كيفية استخدام هذه الصيغة عمليًا مع فريق التحصيلات مع المستندات التالية:
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})
مثال: تقسيم سلسلة إلى مجموعة من السلاسل الفرعية في MongoDB
يمكننا استخدام الكود التالي لتقسيم السلسلة في عمود “الاسم” إلى مصفوفة من السلاسل وعرض النتائج في حقل جديد يسمى “split_name” في مجموعة الفرق :
db.teams.aggregate([ { $project : { split_name: { $split : [ " $name ", " " ] } } }, { $merge : "teams" } ])
وهذا ما تبدو عليه المجموعة المحدثة الآن:
{ _id: ObjectId("62014a924cb04b772fd7a938"), name: 'Dallas Mavs', points: 31, split_name: ['Dallas', 'Mavs'] } { _id: ObjectId("62014a924cb04b772fd7a939"), name: 'San Antonio Spurs', points: 22, split_name: ['San', 'Antonio', 'Spurs'] } { _id: ObjectId("62014a924cb04b772fd7a93a"), name: 'Houston Rockets', points: 19, split_name: ['Houston', 'Rockets'] } { _id: ObjectId("62014a924cb04b772fd7a93b"), name: 'Boston Celtics', points: 26, split_name: ['Boston', 'Celtics'] } { _id: ObjectId("62014a924cb04b772fd7a93c"), name: 'Cleveland Cavs', points: 33, split_name: ['Cleveland', 'Cavs'] }
لاحظ أن كل مستند يحتوي على حقل جديد يسمى “split_name” والذي يحتوي على مصفوفة من السلاسل الفرعية لحقل “الاسم”.
في هذا المثال تحديدًا، اخترنا تقسيم السلسلة الأصلية باستخدام مسافة فارغة كمحدد.
إذا كانت السلسلة مفصولة بمحدد مختلف (مثل واصلة أو شرطة مائلة أو نقطتين وما إلى ذلك)، فما عليك سوى استخدام هذا المحدد في الدالة $split .
ملاحظة : يمكنك العثور على الوثائق الكاملة للدالة $split هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في MongoDB:
MongoDB: كيفية التحقق مما إذا كان الحقل يحتوي على سلسلة
MongoDB: كيفية إضافة حقل جديد
MongoDB: كيفية حذف حقل