javascript 仅按月和年查询createdAt日期

cyvaqqii  于 2023-02-02  发布在  Java
关注(0)|答案(2)|浏览(94)

在mongoose中有没有只使用月份和年份来查询时间戳createdAt字段?或者有没有保存月份和年份来只使用它来查询?使用它的文章或代码?例如I want query the 2021-06- 11 T02:56:52.083+00:00,有没有我只想查询2021-06之前的时间戳?

{ timestamps: true }
oalqel3c

oalqel3c1#

Mongoose时间戳是Date对象,mongodb支持Date上的$gt和$lt操作符,所以你可以使用下面的查找查询来得到你想要的时间段。

// Tue Jun 01 2021 00:00:00
let startDate = new Date(2021, 5);
// Thu Jul 01 2021 00:00:00
let endDate = new Date(2021, 6);

MyModule
  .find({
    $and: [
      { createdAt: { $gt: startDate } },
      { createdAt: { $lt: endDate } },
    ],
  })
ioekq8ef

ioekq8ef2#

我得到的解决方案,这样做的代码:-

const date = new Date(req.body.date)
const month = date.getMonth()
const year = date.getFullYear()
const resp = await Appointment.find({
    'createdAt': {
        "$gte": new Date(year, month, 1),
        "$lt": new Date(year, month + 1, 0)
    }
})

如果你想包含日期,那么你也可以尝试getDate()方法。我希望它会有所帮助

相关问题