mongodb - 如何将时间戳添加到猫鼬模式子字段?
问题描述
我正在尝试在increatedAt
和updatedAt
otp
generate: {}
verify:{}
我知道使用{ timestamps: true }
会将createdAt
和updatedAt
时间戳添加到整个架构中。`
const userSchema = new mongoose.Schema({
email: { type: String, unique: true },
name: { type: String },
mobileNumber: {
isVerified: {type: Boolean, default: false},
otp: {
generate: {
attempts: {type: Number, default: 0},
total: {type: Number, default: 0},
createdAt: {type: Date},
updatedAt: {type: Date}
},
verify: {
attempts: {type: Number, default: 0},
total: {type: Number, default: 0},
createdAt: {type: Date},
updatedAt: {type: Date}
}
}
}
}, { timestamps: true });
将单个时间戳添加到子字段的正确解决方案是什么?{timestamps: true}
通过添加到子字段来做同样的事情是否正确?
generate: {
attempts: {type: Number, default: 0},
total: {type: Number, default: 0},
{timestamps: true}
},
verify: {
attempts: {type: Number, default: 0},
total: {type: Number, default: 0},
{timestamps: true}
}
解决方案
您必须为子字段定义一个单独的架构,然后将其用作子字段的类型。
const otpSchema = new mongoose.Schema({
attempts: { type: Number, default: 0 },
total: { type: Number, default: 0 }
}, {
_id: false, // omit _id fields for subfields
timestamps: true // timestamps options for subfields
});
const userSchema = new mongoose.Schema({
email: { type: String, unique: true },
name: { type: String },
mobileNumber: {
isVerified: { type: Boolean, default: false },
otp: {
generate: otpSchema, // use the defined schema
verify: otpSchema
}
}
}, { timestamps: true });
推荐阅读
- android - kotlin-runtime 和 kotlin-stdlib 之间的重复类
- python - ValueError:无法将字符串转换为浮点数:'(1/2)**576'
- arrays - Swift 枚举作为数组的索引
- rest - 测试数据库中是否存在电子邮件地址后,正确的状态代码是什么?
- mysql-workbench - Mysql工作台回滚没有将表返回到最后一次提交?
- python-3.x - 计算相邻数据的特定长度组合的有效方法?
- html - 引导轮播问题
- jquery - 如何在输入时获取引导日期时间选择器选择的日期
- r - 为什么 Demo 数据适用于我的 complete.R 函数,但来自测验的数据不适用?
- php - Laravel 5.8 中的 laravelcollective/html 包安装问题