Apa yang terjadi adalah tidak ada validasi, middleware, atau nilai default Mongoose yang digunakan saat memanggil salah satu keluarga metode "update", seperti findByIdAndUpdate . Mereka hanya dipanggil oleh panggilan untuk save atau create .
Alasan untuk ini adalah bahwa panggilan "pembaruan" secara efektif diteruskan ke driver asli, dengan Mongoose hanya menyediakan tipe-casting bidang berdasarkan definisi skema.
Pembaruan Mongoose 4.0
Mongoose sekarang mendukung pengaturan default ketika dokumen baru dibuat selama update , findOneAndUpdate , atau findByIdAndUpdate bagian atas. Setel setDefaultsOnInsert pilihan untuk true untuk mengaktifkan ini. Ini menggunakan $setOnInsert operator untuk membuat default pada penyisipan.
var queryOptions = {
upsert: true,
setDefaultsOnInsert: true
};
Company.findByIdAndUpdate(id, company, queryOptions).exec( ...