目前,我正在制作调度系统,并在mongodb中存储信息我的模型的一部分看起来像这样
{ timings: [{from: "00:00", to: "01:00"}], weekend: [0, 5, 6] }
字符串我不知道这是否会是好的,从长远来看,你能帮我决定如何更好地存储时间在我的文件
fd3cxomn1#
MongoDB没有任何时间/间隔数据类型,所以你必须构建自己的解决方案。一些一般注意事项:根据ISO-8601标准使用工作日,即一周的第一天(1)是星期一。然后使用$dateFromParts创建Date值会更容易。对于小时值,始终使用24小时格式。您可以考虑将时间存储为
Date
{from: {hour: 0, minute: 0}, to: {hour: 13, minute: 0}}
字符串否则,当你必须创建Date值(例如用于比较)时,它将是:
{ $dateFromParts : { ..., hour: { $toInt: { $arrayElemAt: [ { $split: [ "$from", ":" ] }, 0 ] } }, minute: { $toInt: { $arrayElemAt: [ { $split: [ "$from", ":" ] }, 1 ] } } } }
型相比
{ $dateFromParts : { ..., hour: "$from.hour", minute: "$from.minute" } }
型另一种方法是存储真实的Date,例如0000-01-01T13:00:00或任何其他任意日期值。当您使用此类值时,只需忽略日期部分。或者存储从午夜开始的分钟数(0..1 '440)或秒数(0..86'400)。但是,这样的数字不便于用户阅读。
0000-01-01T13:00:00
ndasle7k2#
我们也可以存储像这样的类型:字符串和hh:mm和hh以及mm必须是长度为2像09 and 02和小时必须是0到23,所以当我们必须对它执行操作,所以我们可以这样做排序等。
hh:mm
09 and 02
2条答案
按热度按时间fd3cxomn1#
MongoDB没有任何时间/间隔数据类型,所以你必须构建自己的解决方案。一些一般注意事项:
根据ISO-8601标准使用工作日,即一周的第一天(1)是星期一。然后使用$dateFromParts创建
Date
值会更容易。对于小时值,始终使用24小时格式。您可以考虑将时间存储为
字符串
否则,当你必须创建
Date
值(例如用于比较)时,它将是:型
相比
型
另一种方法是存储真实的
Date
,例如0000-01-01T13:00:00
或任何其他任意日期值。当您使用此类值时,只需忽略日期部分。或者存储从午夜开始的分钟数(0..1 '440)或秒数(0..86'400)。但是,这样的数字不便于用户阅读。
ndasle7k2#
我们也可以存储像这样的类型:字符串和
hh:mm
和hh以及mm必须是长度为2像09 and 02
和小时必须是0到23,所以当我们必须对它执行操作,所以我们可以这样做排序等。