Anda tidak menggunakan nama bidang yang benar di B.update
. Anda panggilan. Seharusnya ini sebagai gantinya:
B.update(
{ 'PDFs._id': pdf_id }, // <== here
{ $set: {
'PDFs.$.title': 'new title' // <== and here
}}, function (err, numAffected) {
if(err) throw err;
assert.equal(numAffected,1);
}
);
Anda juga harus memperbaiki reset
berfungsi untuk tidak memanggil panggilan baliknya sampai save
selesai:
function reset(cb) {
B.find().remove();
// create some data with a nested document A
var newA = new A( { title : "my title" })
var newB = new B( { PDFs: newA});
newB.save(cb); // <== call cb when the document is saved
}