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

السؤال

نشر (معدل)

عندما اقوم باستخدام دالة

userschema.pre('save',function(){console.log(this)}

يتم طباعة الوثيقة بينما عندما اقوم باستخدام نفس الدالة للupdateOne يتم طباعة كائن غريب

تم التعديل في بواسطة شرف الدين2
تنسيق الشفرة البرمجية

Recommended Posts

  • 0
نشر

هذا لأن عند استخدام الخطاف(hook ) الخاص بالدالة updateOne تكون this تشير إلى الإستعلامة وليس إلى الوثيقة, للحصول على الوثيقة يمكنك الإستعلام عنها بواسطة كائن الإستعلام الذي يتم تمريره كما في الشفرة التالية

userSchema.pre('updateOne',async function(){
    const docToBeUpdated = await this.model.findOne(this.getQuery());
}

حيث أن التابع model يُمثل الmodel الذي نحصل عليه بإستخدام mongoose.model ولكن بما أننا لا يمكننا إستخدام الmongoose.model قبل إنشاء الخطاف فبالتالي نقوم بالحصول عليه عبر الشفرة السابقة

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...