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

حول إستخدام الدالة findOneAndUpdate

محمود_سعداوي

السؤال

السلام عليكم.

ما الغاية من إستعمال  $set ك:parameter عند إستعمال الدالة findOneAndUpdate.

مثال عملي

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

شكرا.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...