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

ada*_*amK 6 schema mongoose mongodb

我怎么能用Venue文档存储开放时间,以便我可以查询Venue当前是否打开.

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

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

也许沿着这些路线?但不确定Schema是否诚实,也不确定如何查询它以检查它是否打开.

hours: {
    mon: {open: 9:30, close: 18:00 },
    tue: {open: 9:30, close: 17:30 },
    ...
}
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激.谢谢.

nev*_*_me 10

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

所以你有:

hours: {
  mon: {open: 570, close: 1080 },
  tue: {open: 570, close: 1050 },
  ...
}
Run Code Online (Sandbox Code Playgroud)

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

  • 作为字符串还是时间戳?你可能会在JavaScript中首先将它转换为字符串:`var military_time = Math.floor(time/60)+':'+ time%60`然后使用像`moment.js`这样的日期/时间库进行转换它到时间`var mTime = moment(military_time,"hh:m") (2认同)