Node.js/Express: mongoose/mongoDB 使用 req.body 更新文档但避免更新 _id 字段?
Node.js/Express: mongoose/mongoDB update document with req.body but avoid updating _id field?
我目前正在尝试根据某个 _id 值更新文档。如果找到,我想用 req.body 更新 evreything,除了设置一个新的 _id(我想避免,客户端可以更新他们的 _id)。那我该怎么做呢?我会手动更新所有字段并排除 _id 字段吗?
目前我正在这样做:
exports.updateDemoStatus = function(req, res) {
Status.findOneAndUpdate({Demonstrator: req.params.demo_id}, req.body, {new: true}, function(err, status) {
if (err)
console.log(status);
res.json(status);
});
};
更新文档不会更改它的 _id
字段,因为它是唯一的并且与该特定文档相关。
请参考documentation。
正如 Mongoose 官方文档所建议的,如果您需要完整的验证,请使用首先检索文档的传统方法。
我目前正在尝试根据某个 _id 值更新文档。如果找到,我想用 req.body 更新 evreything,除了设置一个新的 _id(我想避免,客户端可以更新他们的 _id)。那我该怎么做呢?我会手动更新所有字段并排除 _id 字段吗? 目前我正在这样做:
exports.updateDemoStatus = function(req, res) {
Status.findOneAndUpdate({Demonstrator: req.params.demo_id}, req.body, {new: true}, function(err, status) {
if (err)
console.log(status);
res.json(status);
});
};
更新文档不会更改它的 _id
字段,因为它是唯一的并且与该特定文档相关。
请参考documentation。 正如 Mongoose 官方文档所建议的,如果您需要完整的验证,请使用首先检索文档的传统方法。