首页 > 解决方案 > Mongo DB mongoose schema.Save 函数正在从数据库中删除字段

问题描述

我正在学习 MongoDB Express 来构建 API。我正在构建一个 API 端点来重置密码,所以要更新密码,我使用 MongooseSchema.Save() 查询来运行验证检查。

这是我更新密码的代码。

  if (!user)
    return next(new AppError('Token is Invalid / Expired', 400));
  user.password = req.body.password;
  user.confirmPassword = req.body.confirmPassword;
  user.passwordResetToken = undefined;
  user.passwordResetExpires = undefined;
  user = await user.save();
  console.log(user);
  sendToken(user, 200, res);

查询成功执行,我也收到了响应时的令牌。但是当我在 MongoDB Compass 应用程序中检查密码块时,没有密码字段,并且在登录时显示密码字段未定义。

因此,我登录了用户,如您在上面的代码中看到的那样,以检查密码是否显示以及密码是否存在。一切正常,只是从数据库中删除了密码。这是我的 Console.log():

{ role: 'user',
  _id: 60db434647541f758fbe7357,
  name: 'Priyanshu Raturi',
  email: 'asffssf@gmail.com',
  password:
   '$2a$12$SijfMMslOO7i0P67f9KLruqrqEbtxb9ht7v/x9xoGw7U6QgwFPEMy',
  __v: 0 }

它之前工作正常。

标签: node.jsmongodbmongoose-schema

解决方案


推荐阅读