我在mongoose模式中有一个代表日期的business hours对象.我正在传递一个json对象,并检索到要解析为字符串的对象.我想知道你是否可以,或者将它表示为另一种类型的对象是否更好.当我像这样传球时,我得到的错误是:validation failed: business.businessHours.monday.startTime: Cast to date failed for value "08:00" (type string)
一种解决方法是设置器,将当前日期与小时和分钟相加:
date.setHours(08);
date.setMinutes(30);
我觉得有更好的方法.
我的目标是:
{
...,
"businessHours":{
"monday": {
"startTime": "08:00",
"endTime": "18:30"
},
"tuesday": {
"startTime": "08:00",
"endTime": "18:30"
},
"wednesday": {
"startTime": "08:00",
"endTime": "18:30"
},
"thursday": {
"startTime": "08:00",
"endTime": "18:30"
},
"friday": {
"startTime": "08:00",
"endTime": "18:30"
},
"saturday": {
"startTime": null,
"endTime": null
},
"sunday": {
"startTime": null,
"endTime": null
}
}
}
模式如下所示:
const sellerSchema = new mongoose.Schema({
user: {
type: mongoose.Schema.Types.ObjectId,
ref: "User",
unique: true,
},
...,
business: {
businessHours: {
monday: {
startTime: {
type: Date,
},
endTime: {
type: Date,
},
},
tuesday: {
startTime: {
type: Date,
},
endTime: {
type: Date,
},
},
wednesday: {
startTime: {
type: Date,
},
endTime: {
type: Date,
},
},
thursday: {
startTime: {
type: Date,
},
endTime: {
type: Date,
},
},
friday: {
startTime: {
type: Date,
},
endTime: {
type: Date,
},
},
saturday: {
startTime: {
type: Date,
},
endTime: {
type: Date,
},
},
sunday: {
startTime: {
type: Date,
},
endTime: {
type: Date,
},
},
},
}
我知道我可以在保存之前转换它,但是有没有办法解析一个到目前为止只有hh:mm的字符串?我似乎找不到一个方法,或者把它作为一个不同的对象来表达会更好,什么样的对象才是这个场合的理想对象.
或者我应该有一个这样的模式:
我需要时间和分钟来做future 的逻辑.
const sellerSchema = new mongoose.Schema({
...,
business: {
businessHours: {
monday: {
startTime: Number, //which will be represented as HHMM
endTime: Number, //which will be represented as HHMM
},
},
},
});
非常感谢.