在我的用户架构中,我有一个属性:
verification: {
phoneVerification: {
verified: Boolean,
code: String,
},
但是,如果我将其更改为:
verification: {
phoneVerification: {
verified: Boolean,
code: String,
carrier: String,
type: String
},
它改变了我的Javascript输出,最终导致我出错。
let user = await User.findOne({ _id: req.user._id }, '-salt -password').exec();
user.verification.phoneVerification = {};
console.log(user.verification);
此代码首先输出:
{ phoneVerification: null,
mailVerification: { verified: false, code: '1c7d55d3d2e64ae98e82' } }
然后结束输出:
{ mailVerification: { verified: false, code: '1c7d55d3d2e64ae98e82' } }
我的模特改变后。
由于phoneVerification未实例化,我的代码给了我一个错误。
这很奇怪,导致这种情况发生的原因是什么?
编辑:
我问为什么在用户模型上向属性添加另一个子属性,我无法再实例化此verify.phoneVerification对象以最终保存属性。这不是上述问题的重复。