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

MongoDB如何通过find查询筛选当前日期与fechaActualizacion天数差大于4的文档

MongoDB按日期间隔筛选文档方案

你需要实现筛选「当前日期与fechaActualizacion字段的天数差值大于4」的文档,对应查询实现如下:


方案1:预计算日期阈值(推荐,可命中索引,性能更高)

你给出的Moment计算逻辑moment().diff(fechaActualizada, 'days') > 4等价于fechaActualizacion的时间早于等于4天前的同一时间点,因此可以提前计算阈值再做查询:

// 计算4天前的日期时间戳
const fourDaysAgo = moment().subtract(4, 'days').toDate()

// 执行find查询,fechaActualizacion加索引后查询效率很高
const res = await 你的模型名.find({
  fechaActualizacion: { $lte: fourDaysAgo }
})

方案2:MongoDB原生表达式计算(仅适合小数据集,无法命中索引)

如果需要在查询内部实时计算日期差,可以用$expr搭配MongoDB内置日期运算符实现:

const res = await 你的模型名.find({
  $expr: {
    $gt: [
      // 计算两个日期的差值换算为天数
      { $divide: [ { $subtract: [ new Date(), "$fechaActualizacion" ] }, 86400000 ] },
      4
    ]
  }
})

参考Schema结构

Schema结构示意图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:36:02