اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

دالة

findOneAndUpdate 

هي إحدى دوال Mongoose في Node.js التي تستخدم لتحديث واسترجاع وثيقة واحدة من مجموعة البيانات. وفي المثال الذي قدمته، يتم استخدام $set كجزء من الكائن الذي يُمثِّل التحديث المطلوب للوثيقة، الدالة

$set

تستخدم لتحديث الحقول داخل وثيقة معينة. عندما تقوم بتمريرها كجزء من عملية

findOneAndUpdate

، فإنك تُخبر قاعدة البيانات بتحديث الحقول المحددة في الكائن المُمرَّر إلى القيم التي تم توفيرها.

profile = await Profile.findOneAndUpdate(
    { user: req.user.id },
    { $set: profileFields },
    { new: true }
);

و الكود التالي 

{ user: req.user.id } 

هو شرط البحث الذي يحدد الوثيقة التي تحتاج إلى التحديث. في هذا المثال، تريد تحديث وثيقة تحمل معرّف المستخدم المُعطى.

و الكود التالي 

{ $set: profileFields }

هنا يتم استخدام

 $set

لتحديث الحقول في الوثيقة المطابقة مع الشرط.

profileFields 

هو كائن يحمل الحقول التي تريد تحديثها في الوثيقة.

{ new: true }

يُعيد الوثيقة المُحدّثة بعد تنفيذ العملية. إذا لم يتم تحديد هذا الخيار، ستحصل على الوثيقة قبل التحديث.

  • 0
نشر

شرح بلال بشكل ممتاز في التعليق السابق الغاية من إستعمال  $set ك:parameter عند إستعمال الدالة findOneAndUpdate.

هنا بعض الأمثلة على استخدام $set كباراميتر في findOneAndUpdate:

تحديث مجال age فقط:

User.findOneAndUpdate({_id: id}, {$set: {age: 30}}, {new: true}) 

تحديث مجالات name و age:

User.findOneAndUpdate({_id: id}, {$set: {name: 'John', age: 30}}, {new: true})

إضافة عنصر لقائمة hobbies:

User.findOneAndUpdate({_id: id}, {$set: {hobbies: ['Sports']}}, {new: true})

تحديث حقل embedded document:

User.findOneAndUpdate(
  {_id: id}, 
  {$set: {'profile.name': 'John'}},
  {new: true}
)

تحديث عدة حقول في وقت واحد:

User.findOneAndUpdate(
  {_id: id},
  {
    $set: {
      name: 'John', 
      profile: {name: 'John'} 
    }
  },
  {new: true}
)

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...