我是猫鼬的新手。我使用“日期”作为“holidayDate”列的类型。我想在“holidayDate”列中仅存储日期而不是时间,因此有任何方法可以在域模型中定义日期格式,因此当我的域名保存时,我的“holidayDate”列值将根据域模型的日期格式保存。
var HolidaySchema = new Schema({
holidayName: {
type: String,
default: '',
required: 'Please fill holiday name',
trim: true
},
holidayDate: {
type: Date,
required: 'Please fill From Date'
}
});
mongoose.model('Holiday', HolidaySchema);
答案 0 :(得分:4)
MongoDB的底层存储引擎(BSON)没有日期 - 无时间类型,只有完整日期(有关MongoDB文档中BSON类型的详细信息,请参阅this page)。
这样做的结果是,您需要在代码中处理它,方法是确保在插入和查询时将时间设置为(例如)00:00:00,或者将其存储为其他类型(例如一个yyyy-mm-dd
字符串或整数)。哪个最合适将取决于您查询和使用该日期的要求。
答案 1 :(得分:0)
在docs中,如果您的架构中有日期类型字段,例如
holidayDate: {
type: Date,
required: 'Please fill From Date'
}
,当您创建假期文档时,Mongoose将使用Date()构造函数将值转换为原生JavaScript日期
const holiday = new Holiday({
holidayDate:'2012-12-19'
});
holiday.holidayDate instanceof Date; // true
,当您验证文档时,无效的日期将导致CastError。
const holiday = new Holiday({
holidayDate:'invalid date'
});
holiday.holidayDate instanceof Date; // false
holiday.validateSync().errors['lastActiveAt']; // CastError