数组拼接后不保存的Mongoose模型

时间:2014-04-13 19:30:17

标签: node.js mongodb mongoose

我有一个Mongoose模型,其数组属性具有嵌套数组属性。以下代码中的console.logs显示了我期望的数据,但是,数据没有持久保存到数据库中,我不知道为什么......

self.findByCustomerId(customerId, function (err, order) {
    if (err) done(err, null);
    console.log('Toppings before splice: ',order.lines[lineIdx].toppings);
    order.lines[lineIdx].toppings.splice(toppingIdx, 1);
    order.updated = new Date();

    // NOTE: This line causes the order.save to work
    order.markModified('lines');

    order.save(function (err) {
        if (err) done(err, null);
        console.log('Toppings after splice: ',order.lines[lineIdx].toppings);
        done(null,"OK");
    });
});

所以一切都运行得很好,但最终的数据库持久性位。我错过了什么?

感谢您的帮助,我迷路了。

1 个答案:

答案 0 :(得分:3)

它需要order.markModified('行')。我将代码添加到原始帖子中。添加此项会导致模型正确保存。