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

السؤال

نشر (معدل)

لدي قاعدة بيانات mongodb وأقوم باستخدام mogoose مع node.js، وقمت مسبقاً بوضع schema معيّنة لكل مجموعة ضمن هذه القاعدة.

ولكن بما تتيحه mogodb من حرية في تعديل بنية هذه المجموعات، أرى أن mongoose يفرض استخدام  schema وأي حقول يتم إضافتها وهي غير موجودة مسبقاً ضمن هذه الـ schema لا يتم حفظها ضمن قاعدة البيانات.

كيف يمكنني إضافة حقول جديدة ليس بالضرورة أن تكون موجودة ضمن الـ schema؟ أم هل يجب علي تجنّب استخدام mongoose في هذه الحالة؟

تم التعديل في بواسطة Tamim Fahed

Recommended Posts

  • 1
نشر

السبب هو أن الخيار strict يكون true بشكل افتراضي ، وبذلك سيتم منع إضافة حقول لم تكن موجودة في schema

ولحل هذه المشكلة هي تغيير قيمة strict من true الى false كالآتي

var thingSchema = new Schema({..}, { strict: false });

أو يمكنك تعديل strict من خلال الإستعلام كالآتي

Model.findOneAndUpdate(
  query,  // فلتر
  update, // البيانات المراد تحديثها
  { //الخيارا
    returnNewDocument: true,
    new: true,
    strict: false
  }
)

 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...