所以我有一个需要创建事件的问题。但是,这些事件在另一个事件之间不能有开始/结束时间。我希望我的活动有一个开始/结束时间,因为它们将是那些日期范围内的唯一活动
例如,如果我有一个活动:
starts at: 4pm
ends at: 5pm
我不能再发生以下事件:
starts at: 4:30 **( this opening time is between start/ends from above event )**
ends at: 5:30
与:
starts at: 3pm
ends at: 6pm
**this one is containing the first event too**
这是结构:
{
"event" : "Event 1"
"startDate": 2019-10-18T20:00:00.363Z, //
"endDate": 2019-10-18T21:00:00.363Z //
}
我该如何用mongo解决这个问题?预先感谢!
答案 0 :(得分:0)
{$or:[
{$and:[{startDate: { $gte: new Date(data.startDate), $lte: new Date(data.endDate) }}]},
{$and:[{endDate: { $gte: new Date(data.startDate), $lte: new Date(data.endDate) }}]}
]}
首先使用上述查询检查在给定日期之间的数据库中是否有任何记录。如果您得到的任何记录都意味着在给定日期之间已经存在事件,那么您就可以抛出异常,否则可以存储记录。