在mongoose中有没有只使用月份和年份来查询时间戳createdAt字段?或者有没有保存月份和年份来只使用它来查询?使用它的文章或代码?例如I want query the 2021-06- 11 T02:56:52.083+00:00,有没有我只想查询2021-06之前的时间戳?
{ timestamps: true }
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 } }, ], })
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()方法。我希望它会有所帮助
2条答案
按热度按时间oalqel3c1#
Mongoose时间戳是Date对象,mongodb支持Date上的$gt和$lt操作符,所以你可以使用下面的查找查询来得到你想要的时间段。
ioekq8ef2#
我得到的解决方案,这样做的代码:-
如果你想包含日期,那么你也可以尝试getDate()方法。我希望它会有所帮助