Mongodb: كيفية الإدراج إذا لم يكن موجودًا


يمكنك استخدام بناء الجملة التالي لإدراج مستند في مجموعة في MongoDB فقط إذا لم يكن موجودًا بالفعل:

 db.teams.update(
	{
	  team: 'Hornets'
	}, 
	 {
	  $setOnInsert : {team: 'Hornets', points: '58', rebounds: '20'}
	 },
	 {upsert: true }
)

يتحقق هذا الرمز المحدد مما إذا كان حقل “الفريق” يحتوي على القيمة “هورنتس”. إذا كانت هذه القيمة موجودة، فلن يحدث شيء.

ومع ذلك، إذا لم تكن هذه القيمة موجودة، فسيتم إدراج مستند بقيم محددة لحقول “الفريق” و”النقاط” و”المرتدات”.

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

مثال: أدخل إذا لم يكن موجودًا في MongoDB

لنفترض أن لدينا مجموعة تسمى فرق تحتوي على المستندات التالية:

 db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8})
db.teams.insertOne({team: " Spurs ", points: 35, rebounds: 12})
db.teams.insertOne({team: " Rockets ", points: 20, rebounds: 7})
db.teams.insertOne({team: " Warriors ", points: 25, rebounds: 5})
db.teams.insertOne({team: " Cavs ", points: 23, rebounds: 9})

لنفترض أننا نستخدم الكود التالي لمحاولة إدراج مستند لفريق “Mavs”:

 db.teams.update(
	{
	  team: 'Mavs'
	}, 
	 {
	  $setOnInsert : {team: 'Mavs', points: '58', rebounds: '20'}
	 },
	 {upsert: true }
)

يحتوي حقل “الفريق” بالفعل على معلومات خاصة بـ “Mavs”، ولن يتم تعديل أي من المستندات.

ومع ذلك، لنفترض أننا نستخدم الكود التالي لإدراج مستند لفريق “Hornets”:

 db.teams.update(
	{
	  team: 'Hornets'
	}, 
	 {
	  $setOnInsert : {team: 'Hornets', points: '58', rebounds: '20'}
	 },
	 {upsert: true }
)

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

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

 { _id: ObjectId("6203df361e95a9885e1e764a"),
  team: 'Mavs',
  points: 30,
  rebounds: 8 }
{ _id: ObjectId("6203df361e95a9885e1e764b"),
  team: 'Spurs',
  points: 35,
  rebounds: 12 }
{ _id: ObjectId("6203df361e95a9885e1e764c"),
  team: 'Rockets',
  points: 20,
  rebounds: 7 }
{ _id: ObjectId("6203df361e95a9885e1e764d"),
  team: 'Warriors',
  points: 25,
  rebounds: 5 }
{ _id: ObjectId("6203df361e95a9885e1e764e"),
  team: 'Cavs',
  points: 23,
  rebounds: 9 }
{ _id: ObjectId("6203e17de42bfba74fc73325"),
  team: 'Hornets',
  dots: '58',
  rebounds: '20' }

لاحظ أنه تمت إضافة مستند جديد لفريق “هورنتس”.

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

مصادر إضافية

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

MongoDB: كيفية إضافة حقل جديد
MongoDB: كيفية حذف حقل
MongoDB: كيفية حساب القيم المميزة في الحقل

Add a Comment

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