node.js - 如何使用电子邮件而不是 id 更新 mongodb 文档?
问题描述
我有一个 nodeJs 应用程序来执行 CRUD 操作。一切都很好,除了更新(我使用电子邮件)。
当我通过邮递员尝试时,它返回 202 - 好的,但是当我在 MongoDb 中检查文档时,它没有被更新并且它保留了旧的值/名字。我一直在这里搜索,找到了一些提示,但它们没有帮助
crud_controller.js:
exports.update_member = function(req, res) {
var userEmail = req.body.email;
User.update({ userEmail }, {$set: req.body}, {multi: true}, function(err, user) {
console.log(`user: ${userEmail} req.body: ${JSON.stringify(req.body)} );
if (err) {
return res.json({success: false, msg: 'Cannot Update User'});
}
if (!user) {
return res.status(404).json({success: false, msg: 'User not found'});
}
else {
res.json({success: true, msg: 'User has been updated'})
};
});
};
我一直在尝试:{new:true}
以及在 SO 上找到的其他选项作为几个问题的答案,但它们都没有帮助。
这是节点文件的console.log:
user: ramirezrodgers@xxxx.com
req.body: {"email":"ramirezrodgers@xxxx.xy","firstname":"test5"}
我也得到了成功的回应:
{success: true, msg: 'User has been updated'}
实际上,一切看起来都很好。我哪里错了?
解决方案
{ email: userEmail } 在您的代码中执行此操作
export.update_member = 函数(req,res){
var userEmail = req.body.email;
User.update({ email: userEmail }, {$set: req.body}, {multi: true}, function(err, user) {
console.log(`user: ${userEmail} req.body: ${JSON.stringify(req.body)} );
if (err) {
return res.json({success: false, msg: 'Cannot Update User'});
}
if (!user) {
return res.status(404).json({success: false, msg: 'User not found'});
}
else {
res.json({success: true, msg: 'User has been updated'})
};
});
};
推荐阅读
- python - 在python中将数据添加到html变量
- python-3.x - 当并行度设置为很大时,气流调度程序启动异常
- ios - 如何在swift中使用视觉框架从其特征点中提取外唇
- c - 如何将此 C 函数指针转换为 delphi 函数
- c# - ASP.Net 页面第一次运行缓慢如果我使用 System.Web.Ui 命名空间
- html - Angular 6 bootstrap 4 - 导航栏品牌标志在向下滚动时不会改变
- html - 如何操作 trix-editor 在连续输入 4 次后停止调整大小
- typescript - 为什么 Typescript 代码是(或不是)循环依赖?
- google-kubernetes-engine - Istio 虚拟服务 uri 匹配不起作用
- c - 使用 C 在连接 N 中检查对角线获胜者