Mongodb: كيفية إضافة حقل جديد إلى المجموعة


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

الطريقة الأولى: إضافة حقل جديد بدون قيم

 db.collection.updateMany({}, { $set :{" new_field ": null}})

الطريقة الثانية: إضافة حقل جديد بقيمة محددة

 db.collection.updateMany({}, { $set :{" new_field ": 10 }}) 

الطريقة الثالثة: إضافة حقل جديد باستخدام قيم من الحقول الموجودة

 db.collection.updateMany(
    {},
    [
        {" $set ": {" name ": { " $concat ": [" $field1 ", " ", " $field2 "]}}}
    ]
)

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

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

المثال 1: إضافة حقل جديد بدون قيم

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

 db.teams.updateMany({}, { $set :{" rebounds ": null}})

يمكننا استخدام الاستعلام التالي لعرض المستندات المحدثة الأولى:

 db.teams.find().limit( 3 )

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

 { _id: ObjectId("6189325896cd2ba58ce928e5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31,
  rebounds: null }

{ _id: ObjectId("6189325896cd2ba58ce928e6"),
  team: 'Spurs',
  position: 'Guard',
  points: 22,
  rebounds: null }

{ _id: ObjectId("6189325896cd2ba58ce928e7"),
  team: 'Rockets',
  position: 'Center',
  points: 19,
  rebounds: null }

لاحظ أن كل مستند يحتوي الآن على حقل يسمى “المرتدات” بقيمة فارغة.

المثال 2: إضافة حقل جديد بقيمة محددة

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

 db.teams.updateMany({}, { $set :{" rebounds ": 10 }})

يمكننا استخدام الاستعلام التالي لعرض المستندات المحدثة الأولى:

 db.teams.find().limit( 3 )

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

 { _id: ObjectId("6189325896cd2ba58ce928e5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31,
  rebounds: 10 }

{ _id: ObjectId("6189325896cd2ba58ce928e6"),
  team: 'Spurs',
  position: 'Guard',
  points: 22,
  rebounds: 10 }

{ _id: ObjectId("6189325896cd2ba58ce928e7"),
  team: 'Rockets',
  position: 'Center',
  points: 19,
  rebounds: 10 }

لاحظ أن كل مستند يحتوي الآن على حقل يسمى “الارتدادات” بقيمة 10.

مثال 3: إضافة حقل جديد باستخدام قيم من الحقول الموجودة

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

 db.teams.updateMany(
    {},
    [
        {" $set ": {" name ": { " $concat ": [" $team ", " ", " $position "]}}}
    ]
)

يمكننا استخدام الاستعلام التالي لعرض المستندات المحدثة الأولى:

 db.teams.find().limit( 3 )

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

 { _id: ObjectId("618934cb96cd2ba58ce928ea"),
  team: 'Mavs',
  position: 'Guard',
  points: 31,
  name: 'Mavs Guard' }

{ _id: ObjectId("618934cb96cd2ba58ce928eb"),
  team: 'Spurs',
  position: 'Guard',
  points: 22,
  name: 'Spurs Guard' }

{ _id: ObjectId("618934cb96cd2ba58ce928ec"),
  team: 'Rockets',
  position: 'Center',
  points: 19,
  name: 'Rockets Center' }

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

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

مصادر إضافية

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

MongoDB: كيفية إعادة تسمية الحقول
MongoDB: كيفية حذف الحقول
MongoDB: كيفية التحقق مما إذا كان الحقل يحتوي على سلسلة
MongoDB: كيفية الاستعلام باستخدام نطاق زمني
MongoDB: كيفية الاستعلام باستخدام التعبير العادي “أعجبني”.

Add a Comment

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