Bạn không sử dụng đúng tên trường trong B.update
của mình cuộc gọi. Thay vào đó nó phải là cái này:
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);
}
);
Bạn cũng nên sửa reset
của mình chức năng không gọi lại cuộc gọi của nó cho đến khi save
hoàn thành:
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
}