mongodb findOneAndUpdate替换文档而不是更新指定的字段

时间:2018-05-23 12:38:02

标签: node.js mongodb mongoose

所以我不明白mongodb的方法findOneAndUpdate或者它是一个bug,我想更新一个文件:

/// The document
{
    "name":"Mary",
    "infos":{
        "cp":"976",
        "tel":"0766553355",
        "adress":"10 av alabama"
    }
}
/// The update 
/*
    req.body is an array of infos :
    "infos":{
        "cp":"222",
        "tel":"888888888",
    }
*/
User.findOneAndUpdate({_id:req.body._id}, {req.body}, {upsert:false}, .... )

结果如下:

{
    "name":"Mary",
    "infos":{
        "cp":"222",
        "tel":"888888888",
    }
}

我想要的结果是:

{
    "name":"Mary",
    "infos":{
        "cp":"222",
        "tel":"888888888",
        "adress":"10 av alabama"
    }
}

地址行消失了,我只是想更新指定的字段而不是删除未指定的字段。

有人可以帮忙吗?

======更新========= 真正的问题是:如何更新每个子文档字段?

谢谢。

0 个答案:

没有答案