【发布时间】:2015-01-28 15:58:23
【问题描述】:
我已经定义了一个如下的用户模式
var UserSchema = new Schema({
firstName: { type: String, required: true },
lastName: { type: String, required: true },
email: { type: String, required: true },
location: String,
picture: String,
isFirstNamePublic: { type: Boolean, required: false, Default: false },
isLastNamePublic: { type: Boolean, required: false, Default: false },
isEmailPublic: { type: Boolean, required: false, Default: false },
isLocationPublic: { type: Boolean, required: false, Default: false },
isPicturePublic: { type: Boolean, required: false, Default: false },
passwordHash: { type: String, required: true },
userRoles: [{businessId: String, role: {type: String, uppercase: true, enum: ['INDIVIDUAL_USER', 'BUSINESS_EMPLOYEE', 'BUSINESS_ADMIN', 'CLIENT', 'PLATFORM_EMPLOYEE']}}],
interestedOfferCategory: String,
linkedSocialNetwork: {type: String, required: false, uppercase: true, enum: ['FACEBOOK', 'TWITTER', 'LINKEDIN']},
linkedSocialNetworkUserId: String,
resetPasswordToken: String,
resetPasswordExpired: Boolean
});
现在,如果我想更新任何未定义的字段,我将无法更新。例如:我保存了一个用户文档,如下所示
{ _id: 54c439395ff4ede519912ea8,
firstName: 'updated first name',
lastName: 'test',
email: 'test@test.com',
interestedOfferCategory: 'testcategory',
passwordHash: '$2a$10$S1zqmQHQ7Sd/qJjtryfzFua4Rn6Xi/oCHsJP9mLfyUnMg/gNV/u3K',
__v: 0,
userRoles:
[ { businessId: '123',
role: 'INDIVIDUAL_USER',
_id: 54c439395ff4ede519912ea9 } ] }
现在我扩展此文档以添加如下所示的 resetPasswordToken
var updatedUser = _.extend(user, {resetPasswordToken: token, revokeSessionTokenExpired: false});
如果我尝试保存文档,resetPasswordToken 和 resetPasswordTokenExpired 的值不会更新。
updatedUser.save(cb);
上面的行没有更新值。
我在这里错过了什么?
【问题讨论】:
-
revokeSessionTokenExpired != resetPasswordTokenExpired
-
@NeilLunn 我没听明白?
-
您的代码使用了错误的属性名称,它显示为“revokeSessionTokenExpired”,文档中不存在该名称。
-
@NeilLunn 即使我将其更改为
resetPasswordExpired,文档也不会更新