【问题标题】:Get the data for the next 30 days [duplicate]获取未来 30 天的数据 [重复]
【发布时间】:2020-02-21 14:01:44
【问题描述】:

我在获取未来 30 天的数据方面需要帮助。 我有,

db.employee.find(
{
    "idExpiryDate": 
    {
        $gte: new Date()
    }
}
).sort({ "idExpiryDate": 1 })

在这里,我得到了今天之后的所有 idExpiryDate,但我只想要接下来 30 天的数据。 有人可以帮忙吗?

【问题讨论】:

  • 早于从当前日期减去并使用$gte 或“大于”,当前日期之后的日期将添加到当前日期并为“小于”或$lte。可能就像 $gte 的“现在”和 $lte 未来的日期,除非你想要更老的。您在发送查询之前而不是期间或之后进行数学运算。

标签: mongodb date-range robo3t


【解决方案1】:

也使用小于 ($lt) 运算符,将 2,592,000,000(30 天内的毫秒数)添加到当前日期:

db.employee.find(

    "idExpiryDate": 
    {
        $gte: new Date(),
        $lt: new Date(new Date().valueOf() + 2952000000)
    }
}
).sort({ "idExpiryDate": 1 })

【讨论】:

    【解决方案2】:

    尝试以下方法:

    db.employee.find(
    {
        "idExpiryDate": 
        {
            $gte: new Date((new Date().getTime() - (30 * 24 * 60 * 60 * 1000)))
        }
    }
    ).sort({ "idExpiryDate": -1 })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-23
      • 2017-07-06
      • 2012-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      相关资源
      最近更新 更多