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

MongoDB日期范围查询:如何用$or完善多条件日期筛选逻辑

MongoDB日期范围查询优化

你需要通过$or组合两类筛选条件,同时处理字符串格式的日期字段转换,以下是修改后的查询代码:

db.collection.find({
  $expr: {
    $or: [
      // 第一类条件:文档arrival >= 输入arrival 且 < 输入check-out
      {
        $and: [
          {
            $gte: [
              { $dateFromString: { dateString: "$arrival" } },
              new Date("2024-06-11T06:00:00.000Z")
            ]
          },
          {
            $lt: [
              { $dateFromString: { dateString: "$arrival" } },
              new Date("2024-06-16T06:00:00.000Z")
            ]
          }
        ]
      },
      // 第二类条件:文档check-out > 输入arrival
      {
        $gt: [
          { $dateFromString: { dateString: "$check-out" } },
          new Date("2024-06-11T06:00:00.000Z")
        ]
      }
    ]
  }
})

关键说明:

  • 用$or包裹两个独立筛选分支,分别对应你需求中的两类文档
  • 所有日期比较都通过$dateFromString将文档内的字符串日期转换为MongoDB可识别的日期类型
  • 输入的日期参数用new Date()转换为日期对象,确保类型匹配

内容的提问来源于stack exchange,提问作者Arturo Martinez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 12:37:09