You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB请假记录重叠日期查询失效,求正确匹配查询写法

MongoDB 请假日期重叠校验查询方案

核心重叠判断逻辑

两个时间段只要满足 已有请假开始时间 <= 用户输入结束时间 且 已有请假结束时间 >= 用户输入开始时间,就属于重叠场景,可覆盖所有重叠情况,不需要写复杂的多分支判断。

正确查询语句

假设用户输入的待校验时间段为inputStart(2021-11-24 00:00:00 GMT)和inputEnd(2021-11-28 00:00:00 GMT),查询语句如下:

[
  {
    '$match': {
      // 可根据业务需求加有效状态过滤,比如只查询审批通过的请假
      'leaveStatus': 1,
      // 核心重叠判断条件
      'fromDate': { '$lte': new Date('2021-11-28T00:00:00.000Z') },
      'toDate': { '$gte': new Date('2021-11-24T00:00:00.000Z') }
    }
  }
]

覆盖的所有重叠场景

  • 已有请假完全被用户输入时间段包含(对应需求场景:已有25-27,用户输入24-28)
  • 用户输入时间段完全被已有请假包含
  • 已有请假和用户输入时间段左边界重叠
  • 已有请假和用户输入时间段右边界重叠
  • 两个时间段完全重合

如果查询返回结果不为空,说明当前输入时间段存在重叠的有效请假,不允许提交申请。

内容的提问来源于stack exchange,提问作者Ezad Abada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:27:06