我正在尝试添加 createdAt
和 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 });
关于mongodb - 如何向 Mongoose 模式子字段添加时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62977227/