如何在MongoDB中创建和存储定期日历事件
我正在构建一个基于日历的应用程序,其中日历中有事件。事件可以重复发生(每日、每周、每月、每季度、每两年和每年) 每个事件文档都有一个默认的如何在MongoDB中创建和存储定期日历事件,mongodb,calendar,Mongodb,Calendar,我正在构建一个基于日历的应用程序,其中日历中有事件。事件可以重复发生(每日、每周、每月、每季度、每两年和每年) 每个事件文档都有一个默认的名称、默认日期和说明,但也包含一个与每个用户相关联的对象数组(userData,userDescription)。虽然事件是集中的,但有些用户有自己的userDate,这不是默认值,每个用户都可以为事件设置自己的userDescription。这就是userData对象存在的原因 为了澄清,事件文档如下所示: { _id: '1234567',
名称
、默认日期
和说明
,但也包含一个与每个用户相关联的对象数组(userData
,userDescription
)。虽然事件是集中的,但有些用户有自己的userDate
,这不是默认值,每个用户都可以为事件设置自己的userDescription
。这就是userData
对象存在的原因
为了澄清,事件文档如下所示:
{
_id: '1234567',
name: 'Event One',
description: 'This is the default description',
defaultDate: '2017-02-15T12:00:00.000Z',
userData: [
{
userId: '8765432',
userDate: '2017-06-10T12:00:00.000Z',
userDescription: 'My personalised description',
},
{
userId: '461938',
userDate: '2017-03-21T12:00:00.000Z',
userDescription: 'I have a description too!',
},
]
}
我正试图找出最好的方法来处理这些事件在创建时的重复存储。编辑事件时,还需要编辑事件的所有其他副本。在任何情况下,都不会有一个事件需要编辑,但重复发生的事件保持不变的情况
创建事件时,我有一个HTML选择,询问事件是否重复发生,并有以下选项:无、每日、每周、每月、每季度、每两年、每年
如果有人能建议最好的方法来创建这些活动的重复副本,我将不胜感激 你觉得这些图案有用吗?我不是100%确定。因为他们使用的是mySQL,所以我不完全了解它们是如何工作的,以及它们是否适用于Mongo。我希望有人用MongoDB做了这件事,并且有一个对他们有用的解决方案。这些是解决一般问题的一般模式。有几种方法可以处理反复发生的事件,每种方法都有利弊。没有特定于SQL或mongo的内容。实现当然会有所不同,但如果您要求的是最佳方式,则需要选择最适合您的方式。否则问题就太广泛了。该页面上的解决方案专门使用SQL连接,对吗?如何将该解决方案应用于NoSQL数据库?我需要为我的日历提供一系列事件,因此我需要研究如何以允许我这样做的格式存储重复事件-我不认为问题太多。连接是最简单的部分。在所有情况下,它都是1:n关系,可以轻松地转换为文档数组,或者与聚合的查找一起使用。真正的问题是间隔计算的成本与积垢的成本。在那里的评论中对它进行了很好的描述。