您可以使用预保存挂钩:
const geoframeSchema = mongoose.Schema({
count: Number,
createdBy: String,
createdAt: Date,
polygons: [
{
points: [{ lat: Number, lng: Number }],
},
],
});
geoframeSchema.pre('save', function() {
this.createdAt = doc._id.getTimestamp();
});
您必须确保 doc._id.getTimestamp() 可以从架构中访问或将其设置为实例方法:
geoframeSchema.methods.getTimestamp = function() {
...
}
...然后在您的预保存挂钩中调用它:
geoframeSchema.pre('save', function() {
this.createdAt = this.getTimestamp();
});
在这种情况下,您还可以使用架构选项对象来设置将自动填充的时间戳:
const geoframeSchema = mongoose.Schema({
count: Number,
createdBy: String,
polygons: [
{
points: [{ lat: Number, lng: Number }],
},
],
}, {
timestamps: {
createdAt: 'createdAt',
updatedAt: 'updatedAt'
}
});
你可以这样命名你的时间戳:
createdAt: 'timestampName'