Saya menemukan situasi yang membuat frustrasi ini dan sedikit terkejut dengan solusi terdokumentasi dari situs web Mongoose.
jadi apa artinya ini adalah untuk menyimpan properti array/objek bersarang (Item dalam kasus Anda), Anda harus eksplisit dalam menentukan perubahan .markModified('Item')
var objectToSave = new ModelToSave({
_id : req.params.id,
Item : customObject
});
objectToSave.markModified('Item');
objectToSave.save();
Karena ini adalah tipe tanpa skema, Anda dapat mengubah nilainya menjadi apa pun yang Anda suka, tetapi Mongoose kehilangan kemampuan untuk mendeteksi dan menyimpan perubahan tersebut secara otomatis. Untuk "memberi tahu" Mongoose bahwa nilai tipe Campuran telah berubah, panggil metode .markModified(path) dari dokumen yang meneruskan jalur ke tipe Campuran yang baru saja Anda ubah.
-- http://mongoosejs.com/docs/schematypes.html#mixed