MongoDb开放时间架构和查询打开/关闭

时间:2013-07-04 00:38:17

标签: mongodb schema mongoose

我怎样才能存储开场时间,比如一个场地文件,以便我可以查询场馆当前是否开放。

每个Venue文档只包含一周中每一天的开放时间和结束时间(可能只是它打开的那些?)。

我只需要能够设置和列出小时数(我猜是微不足道),并根据当前时间查询它是打开还是关闭。

也许是这些方面的东西?但不确定Schema是否诚实,也不确定如何查询它以检查它是否打开。

hours: {
    mon: {open: 9:30, close: 18:00 },
    tue: {open: 9:30, close: 17:30 },
    ...
}

非常感谢任何建议。感谢。

1 个答案:

答案 0 :(得分:9)

而不是使用实际小时数,而是将时间存储为0 - 1440,每个数字都是一分钟的增量。然后,您就可以使用$gte$lte

所以你有:

hours: {
  mon: {open: 570, close: 1080 },
  tue: {open: 570, close: 1050 },
  ...
}

这就是我在我的应用中使用的策略。当然,有一些更有效的方法,比如将一周的所有小时数存储在一个阵列中,但你的方法仍然很好。