我想了解使用猫鼬更新模型实例的正确方法是什么,即:
有:
User = {
username: {
type: String,
indexed: true
},
email: {
type: String,
indexed: true
},
name: String,
.........
};
我通过 ajax 将整个表单发送到控制器。
到目前为止,我知道两种选择:
app.put('/users/', function(req, res){
var id = ObjectId(req.body._id);
User.findOne({_id: id}, function(err, user){
user.name = req.body.name;
....
....
user.save();
});
});
或者:
app.put('/users/', function(req, res){
var id = ObjectId(req.body._id);
delete req.body._id
User.update({_id: id}, req.body, function(err){
.....
};
});
两种方法都有缺点:
在第一种方法中,我必须一个一个地映射所有属性;
在第二种方法中,我必须删除所有无法更改的属性;
还有第三种可能的方法可以让我从客户端发送,只有更改的属性,但我认为这将是一个很大的麻烦。
有没有一种我没有看到的好的、标准化的方式来做到这一点?
谢谢