更新mongodb中对象内的字段

时间:2014-09-26 15:58:38

标签: node.js mongodb

我试图更新另一个对象,但是当对象更新时,请替换所有信息。

结构

var userSchema = mongoose.Schema({

    local            : {
        email        : {type: String, unique: true},
        password     : String
    }
    name: String
});

之前更新

用户

{
    name = 'foo',
    local {
        email: "foo@foo.com",
        password: "foopass"
    }
}

更新后

{
    name = 'foo',
    local {
        email: "foo@foo.com"
    }
}

这是我的疑问:

router.put('/:id', function(req, res) {

    User.findByIdAndUpdate(req.params.id, {
    $set: { name: req.body.name, local: {email: req.body.email} }
    }, { upsert: true },
    function(err, obj) {
        return res.json(true);
    });
});

1 个答案:

答案 0 :(得分:0)

$set键中使用点表示法仅定位email的{​​{1}}属性,而不是更新整个local对象:

local