خالد مرتضى نشر 12 ديسمبر 2021 أرسل تقرير نشر 12 ديسمبر 2021 (معدل) عندما اقوم باستخدام دالة userschema.pre('save',function(){console.log(this)} يتم طباعة الوثيقة بينما عندما اقوم باستخدام نفس الدالة للupdateOne يتم طباعة كائن غريب تم التعديل في 12 ديسمبر 2021 بواسطة شرف الدين2 تنسيق الشفرة البرمجية 1 اقتباس
0 شرف الدين حفني نشر 12 ديسمبر 2021 أرسل تقرير نشر 12 ديسمبر 2021 هذا لأن عند استخدام الخطاف(hook ) الخاص بالدالة updateOne تكون this تشير إلى الإستعلامة وليس إلى الوثيقة, للحصول على الوثيقة يمكنك الإستعلام عنها بواسطة كائن الإستعلام الذي يتم تمريره كما في الشفرة التالية userSchema.pre('updateOne',async function(){ const docToBeUpdated = await this.model.findOne(this.getQuery()); } حيث أن التابع model يُمثل الmodel الذي نحصل عليه بإستخدام mongoose.model ولكن بما أننا لا يمكننا إستخدام الmongoose.model قبل إنشاء الخطاف فبالتالي نقوم بالحصول عليه عبر الشفرة السابقة اقتباس
السؤال
خالد مرتضى
عندما اقوم باستخدام دالة
userschema.pre('save',function(){console.log(this)}
يتم طباعة الوثيقة بينما عندما اقوم باستخدام نفس الدالة للupdateOne يتم طباعة كائن غريب
تم التعديل في بواسطة شرف الدين2تنسيق الشفرة البرمجية
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.