我创建了一个猫鼬模式并添加了一些模式类型
const userSchema = new mongoose.Schema({
name: {
type: String,
required: [true, 'Please tell us your name']
},
email: {
type: String,
required: true,
unique: true,
lowercase: true,
validate: [validator.isEmail, 'please provide a email']
},
photo: String,
password: {
type: String,
required: [true, 'Please provide a password'],
minlength: 8,
select: false
},
passwordConfirm: {
type: String,
required: [true, 'Please Confirm your password'],
validate: {
// This only works on CREATE AND SAVE!!!
validator: function(el) {
return el === this.password
},
message: 'Passwords are not same'
}
},
passwordChangedAt: Date
});
然后我将数据分配给模型
{
"name" : "Abdullah",
"email" : "abdullah@gmail.com",
"password" : "pass1234",
"passwordConfirm" : "pass1234",
"passwordChangedAt" : "12-4-2021"
}
最后,“passwordChangedAt”属性没有显示在我的数据库中
答案 0 :(得分:1)
值 "12-4-2021"
是一个字符串,而不是日期。
请参阅 MongoDB 文档中 Date 的说明。
Mongoose 将尝试将提供的值转换为日期类型。 请参阅 Mongoose 文档中的 Working with Dates 教程。
请注意,该教程中的每个字符串日期示例都使用“YYYY-MM-DD”格式。
答案 1 :(得分:0)
在创建新用户时,需要获取请求的字段;即,name: req.body.name;
同样,您需要获取请求的 passwordChangedAt: req.body.passwordChangedAt
字段。