如果今天的日期大于添加到日期字段的 3 天,我们如何在 mongodb 中查找记录

问题描述 投票:0回答:1

如果有endDate的文档,我想通过mongo查询获取endDate+3天小于今天的集合中的文档

下面的查询将查找 endDate 小于今天的记录

const myCollection= DB_CONNECTION.collection(TRANSACTION);

let expiredTrans = await myCollection.find({ "endDate": { $lt: curTime}}).toArray();

我需要在 endDate 上添加 3 天,然后获取记录。

mongodb mongodb-query
1个回答
0
投票

您需要

$dateAdd
运算符,但由于它是聚合运算符,因此您需要使用
$expr
运算符。

可选,您可以将

curTime
替换为
$$NOW
,这是一个 MongoDB 变量来获取当前时间。

db.collection.find({
  $expr: {
    $lt: [
      {
        $dateAdd: {
          startDate: "$endDate",
          unit: "day",
          amount: 3
        }
      },
      "$$NOW"// curTime
      
    ]
  }
})

演示@Mongo Playground

© www.soinside.com 2019 - 2024. All rights reserved.