我有我的mogoose架构一些嵌套的属性是这样的:猫鼬更新嵌套值
const userSchemaValues = {
username: {
type: String,
required: [true, 'Username required'],
trim: true,
unique: true,
lowercase: true
},
password: {
type: String,
required: [true, 'Password required'],
trim: true,
minlength: 8
},
...
prop: {
prop_1: String,
prop_2: String
}
};
valuesToUpdate.prop = _.pick(req.body, 'prop_1', 'prop_2');
\t log.debug(JSON.stringify(valuesToUpdate));
\t User.update({_id: req.params.id}, {$set: valuesToUpdate})
\t \t .then((data) => {
\t \t \t return res.json({message: data});
\t \t })
\t \t .catch(err => {
\t \t \t log.error(err);
\t \t \t return next({message: 'Error updating User.'});
\t \t });
但是,当我在与用户做User.update({_id: req.params.id}, {$set: valuesToUpdate})
prop_1和_2用这样的对象设置({"prop":{"prop_1": "somevalue"}
),它不是l为了支持什么,它只是覆盖它。我怎样才能绕过这个?
你能在这里写完整的查询吗? – abdulbarik
我更新了我的问题。 –