خالد مرتضى نشر 12 ديسمبر 2021 أرسل تقرير مشاركة نشر 12 ديسمبر 2021 (معدل) عندما اقوم باستخدام دالة userschema.pre('save',function(){console.log(this)} يتم طباعة الوثيقة بينما عندما اقوم باستخدام نفس الدالة للupdateOne يتم طباعة كائن غريب تم التعديل في 12 ديسمبر 2021 بواسطة شرف الدين2 تنسيق الشفرة البرمجية 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 قبل إنشاء الخطاف فبالتالي نقوم بالحصول عليه عبر الشفرة السابقة اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
خالد مرتضى
عندما اقوم باستخدام دالة
userschema.pre('save',function(){console.log(this)}
يتم طباعة الوثيقة بينما عندما اقوم باستخدام نفس الدالة للupdateOne يتم طباعة كائن غريب
تم التعديل في بواسطة شرف الدين2تنسيق الشفرة البرمجية
رابط هذا التعليق
شارك على الشبكات الإجتماعية
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.