首页 > 解决方案 > 猫鼬模式对象中的时间格式

问题描述

我有如下模式对象

 schedule: [{
        time: {
            type: Date,
            required: true
        }
    }]

当我尝试在邮递员中发布数据时

"schedule":[
      {
         "time":"18:00:00"
      }]

我收到以下错误

验证失败:schedule.1.time:Cast to Date 值“12:00:00”失败

如果我定义typeString,一切正常。

我认为我在定义接受时间的类型时是错误的。任何人都可以帮助我更好地定义对象类型

标签: node.jsmongoosemongoose-schema

解决方案


我有一个简单的问题要问你,你想只存储时间(没有日期组件,例如18:00:00)还是时间戳(日期和时间,例如2019-06-11T06:24:46.642Z)?

如果只是时间,那么很遗憾,您不能将其存储在date类型化字段中,因为它接受日期或时间戳,而string类型可以接受任意字符串。

我会建议在检索后以您想要的任何方式存储18:00:00as then 处理,或者存储一个字段类型为 as并将其与相应日期一起使用。stringtimestampdate

只是为了解释错误,它发生是因为18:00:00没有有效的方式来表示日期,因为该字段是日期类型的。


推荐阅读