对子文档数组的Mongoose findOneAndUpdate

时间:2018-01-01 04:31:14

标签: javascript arrays node.js mongodb mongoose

我试图用一个新的数组副本替换一个子文档数组。

像...一样的东西。

var products = productUrlsData;   //new array of documents

var srid = the_correct_id;

StoreRequest.findOneAndUpdate({_id: srid}, {$set: {products: products}}, {returnNewDocument : true}).then(function(sr) {
        return res.json({ sr: sr});  //is not modified
}).catch(function(err) {
        return res.json({err: err});
})

产品var具有正确的修改,但返回的对象以及db中的文档未被修改。这不是替换作为子文档数组的字段的正确方法吗?如果没有,那是什么?

1 个答案:

答案 0 :(得分:0)

我参加聚会有点晚,而且我真的很着急-但应该是:

StoreRequest.updateOne(
        { _id: srid },
        { $set: { 'products.$': products }},
        { new: true });

我无法使其与findOneAndUpdate一起使用,但以上方法确实起作用。