【问题标题】:Check if date is conflict on a range of dates on mongodb检查日期是否在 mongodb 上的一系列日期上发生冲突
【发布时间】:2020-05-19 06:43:26
【问题描述】:

我正在创建一个带有约会的简单日历。 我有以下日期范围示例的文档。

{
"start_date" : "2020-02-06T19:58:25.430Z",
"end_date" : "2020-02-16T19:58:25.430Z"
},
{
"start_date" : "2020-02-17T19:58:25.430Z",
"end_date" : "2020-02-27T19:58:25.430Z"
},
{
"start_date" : "2020-03-21T19:58:25.430Z",
"end_date" : "2020-03-31T19:58:25.430Z"
},

如果用户输入的 start_date 和 end_date 在已创建的日期范围内有冲突,系统应阻止用户插入新文档。

我该怎么做?我可以使用 Moment JS 吗?

【问题讨论】:

  • 您可以从您的 Node.JS 代码中搜索冲突的约会,并防止在冲突时插入新的事件。
  • 我现在使用了 moment-range 包。我在stackoverflow.com/questions/40970369/… 上找到了它

标签: node.js mongodb meteor momentjs


【解决方案1】:

您可以创建唯一的复合索引:

db.collection.createIndex({'start_date':1, 'end_date': 1}, {'unique': true})

【讨论】:

  • 使用这个,如果用户提供像“2020-03-19...”到“2020-03-22”这样的日期,它会检测到从2020-03-21到日期范围的冲突吗? 2020-03-31" 索引 2 上的文档?
猜你喜欢
  • 2020-03-21
  • 1970-01-01
  • 2015-05-04
  • 2016-03-16
  • 2021-02-24
  • 1970-01-01
  • 1970-01-01
  • 2012-02-24
  • 1970-01-01
相关资源
最近更新 更多