【问题标题】:How can I store and query recurring date events using mongo?如何使用 mongo 存储和查询重复日期事件?
【发布时间】:2012-05-17 19:04:27
【问题描述】:

我想让我的用户为他们的活动设置时间表。可能是一天,或者为了方便起见,我想让他们指定一个重复发生的事件(类似于 Outlook 约会)。

存储一天很容易,但我如何存储和查询重复发生的事件?我不需要做时间,因为我只是单独存储,如果他们需要不同的时间,我会让他们创建另一个事件。所以不:每周三 5 点和周四 3 点。

例子:

每周一、周二、周三、周四、周五、每周

每周三

每月的第二个星期二

几年前我问过这个问题:How can I store and query schedule data? 但它使用的是 SQL 解决方案(SQL Server)。不过我想使用 Mongo,所以需要一个端口。

【问题讨论】:

    标签: mongodb mongodb-query


    【解决方案1】:

    如何存储原始日期和有关重复的信息?它是一个无限的实验领域,您可以发明自己的“重复事件格式”。例如:

    event : {
       date: 17 May 2012 22.45, 
       recurring: "+2d"  # meaning, every second day after the date
    }
    

    【讨论】:

    • 这是我在 mongo 项目中使用的一种方法;使用可以匹配的标识符。您可以过滤到一定程度,然后它可能涉及一些客户端过滤。在 python 中,我使用 dateutil 模块来重建一个重复出现的日期对象。
    • 那么你能提供一些基本的查询吗?我是一个完全的mongo newb。我将如何展示下周即将发生的事件?
    • 你不能通过 Mongo 做到这一点。业务逻辑应该驻留在应用程序中,而不是数据库中。
    • @BasicWolf:数据查询应该仍然在数据库层。您不能指望应用程序获取所有事件,然后执行查询客户端。这不是一个好主意。
    • @dashmug,我不同意,重复日期来自业务逻辑,而不是数据层。
    猜你喜欢
    • 2021-02-26
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    • 2016-05-18
    • 1970-01-01
    相关资源
    最近更新 更多