我在使用 Mongoose 从查找中更新文档时遇到问题。只有当我尝试用一个对象(例如 doc = req.body)覆盖文档时,才会出现问题。但是,我可以直接将原始文档的属性设置为特定的字符串(例如 doc.name = 'jasonborne';)。
我已经验证 res.body 是一个对象,所以我不明白为什么我不能这样设置它。
Client.findById(req.params.client_id, function (err, client) {
if (err)
return next(new restify.InternalError(err));
// client.name = 'jason borne';
client = req.body;
client.save(function(err) {
if (err)
return next(new restify.InternalError(err));
res.send(client);
});
});
尝试将文档设置为对象时,我收到错误消息:
TypeError: Object # has no method 'save'
我知道我可以使用简单的 Client.update(...) 命令进行更新,但是这种方法不允许我的模式中间件或验证运行(在Mongoose 文档中注明)。
有什么想法吗?我是 Node 和 Mongoose 的新手。