如何在MongoDB中获取前一天的记录?
How to get previous day's records in MongodDB?
我正在使用 MongoDB,它有一个以毫秒为单位的时间字段。我正在尝试获取前一天的所有记录。
到目前为止,我已经搜索了显示如何获取前 24 小时记录的解决方案。但我只需要前一天的记录。请帮助编写此查询。
所以像这样
createdTime: {
$lt: new Date().getTime(),
$gt: new Date().getTime() - 1000 * 60 * 60 * 24,
},
但就像我解释的那样,这不是我想要的。
您可以通过这种方式获取前一天开始和结束的 UNIX 时间戳。
注意 - 以 UTC 时间开始和结束
var start = new Date().setUTCHours(0,0,0,0)-1000 * 60 * 60 * 24;
var end = new Date().setUTCHours(23,59,59,999)-1000 * 60 * 60 * 24;
console.log(start)
console.log(end)
console.log(new Date(start).toUTCString())
console.log(new Date(end).toUTCString())
var date = new Date();
date ; //# => today date
var yesterdayDate = date.setDate(date.getDate() - 1);
createdTime: {
$lt: date,
$gt: yesterdayDate,
}
我们假设“前一天”是从今天前一天开始的 24 小时时间段。最简单的方法是使用基于 UTC 的时间并添加时区偏移量(如果需要)。
const timeZoneOffset = -5;
createdTime: {
$gt: new Date().setUTCHours(0,0,0)-1000 * 60 * 60 * (24 + timeZoneOffset),
$lt: new Date().setUTCHours(23,59,59,999)-1000 * 60 * 60 * (24 + timeZoneOffset)
},
每当你必须使用 date/time 算法时,我推荐 moment.js 库:
createdTime: {
$lt: moment().endOf('day').subtract(1, 'day').toDate(),
$gte: moment().startOf('day').subtract(1, 'day').toDate()
},
我正在使用 MongoDB,它有一个以毫秒为单位的时间字段。我正在尝试获取前一天的所有记录。 到目前为止,我已经搜索了显示如何获取前 24 小时记录的解决方案。但我只需要前一天的记录。请帮助编写此查询。 所以像这样
createdTime: {
$lt: new Date().getTime(),
$gt: new Date().getTime() - 1000 * 60 * 60 * 24,
},
但就像我解释的那样,这不是我想要的。
您可以通过这种方式获取前一天开始和结束的 UNIX 时间戳。
注意 - 以 UTC 时间开始和结束
var start = new Date().setUTCHours(0,0,0,0)-1000 * 60 * 60 * 24;
var end = new Date().setUTCHours(23,59,59,999)-1000 * 60 * 60 * 24;
console.log(start)
console.log(end)
console.log(new Date(start).toUTCString())
console.log(new Date(end).toUTCString())
var date = new Date();
date ; //# => today date
var yesterdayDate = date.setDate(date.getDate() - 1);
createdTime: {
$lt: date,
$gt: yesterdayDate,
}
我们假设“前一天”是从今天前一天开始的 24 小时时间段。最简单的方法是使用基于 UTC 的时间并添加时区偏移量(如果需要)。
const timeZoneOffset = -5;
createdTime: {
$gt: new Date().setUTCHours(0,0,0)-1000 * 60 * 60 * (24 + timeZoneOffset),
$lt: new Date().setUTCHours(23,59,59,999)-1000 * 60 * 60 * (24 + timeZoneOffset)
},
每当你必须使用 date/time 算法时,我推荐 moment.js 库:
createdTime: {
$lt: moment().endOf('day').subtract(1, 'day').toDate(),
$gte: moment().startOf('day').subtract(1, 'day').toDate()
},