我在 MongoDB 5.0.2 中名为“文件”的集合中有文档。此集合用于用户上传的内容。我想以 1 小时为间隔计算过去 24 小时内上传的文件数。
例如,用户在 13:00 上传了 3 个文件,在 14:00 上传了 2 个文件,在 15:00 上传了 0 个文件,以此类推。
我已经在我的 Mongo 文档中存储了一个“时间戳”字段,它是来自 Javascript 的 ISODate 对象。
我查看了无数的 stackoverflow 问题,但找不到任何适合我的需求或我理解的内容。
会是这个:
{ $match: {timestamp: {$gt: moment().startOf('hour').subtract(24, 'hours').toDate() } } },
{ $group:
_id: {
y: {$year: "$timestamp"},
m: {$month: "$timestamp"},
d: {$dayOfMonth: "$timestamp"},
h: {$hour: "$timestamp"},
},
count: ...
}
或者在 Mongo 5.0 版中你可以做
{ $group:
_id: { $dateTrunc: { date: "$timestamp", unit: "hour" } },
count: ...
}
对于任何与日期时间相关的操作,我推荐使用moment.js库
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句