【发布时间】:2013-02-21 01:56:25
【问题描述】:
我想了解使用猫鼬更新模型实例的正确方法是什么,即:
拥有:
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){
.....
};
});
两种方式都有缺点:
在第一种方法中,我必须一个一个地映射所有属性;
在第二种方法中,我必须删除所有无法更改的属性;
还有第三种可能的方法可以让我从客户端发送,只发送更改的属性,但我认为这将是一个很大的麻烦。
是否有一种我没有看到的好的、标准化的方式来做到这一点?
谢谢
【问题讨论】:
-
致投反对票的人:至少你可以在评论中解释你的投票......