猫鼬如何在模型中设置日期格式
Posted
技术标签:
【中文标题】猫鼬如何在模型中设置日期格式【英文标题】:mongoose how to set date format in model 【发布时间】:2015-08-10 13:04:28 【问题描述】:我是猫鼬的新手。我使用 "Date" 作为我的 "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);
【问题讨论】:
【参考方案1】:MongoDB 的底层存储引擎 (BSON) 没有 date-without-time 类型,只有完整日期(有关 MongoDB 文档中 BSON 类型的详细信息,请参阅 this page)。
这样做的结果是您需要在代码中处理它,方法是确保在插入和查询时始终将时间设置为(例如)00:00:00,或者将其存储为不同的类型(例如yyyy-mm-dd
字符串或整数)。其中哪一个最合适取决于您查询和使用该日期的要求。
【讨论】:
【参考方案2】:来自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
【讨论】:
以上是关于猫鼬如何在模型中设置日期格式的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Oracle SQL Developer 中设置自定义日期时间格式?