繁体   English   中英

mongoose如何在模型中设置日期格式

[英]mongoose how to set date format in model

我是猫鼬的新手。 我使用“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);

MongoDB的底层存储引擎(BSON)没有日期 - 无时间类型,只有完整日期(有关MongoDB文档中BSON类型的详细信息,请参阅此页面 )。

这样做的结果是,您需要在代码中处理它,方法是确保在插入和查询时将时间设置为(例如)00:00:00,或者将其存储为其他类型(例如yyyy-mm-dd字符串或整数)。 哪个最合适将取决于您查询和使用该日期的要求。

文档中,如果在您的架构中,您有一个日期类型字段,例如

 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM