需求
最近在使用 MongoDB 时遇到一个需求,就是查询过去一周内每天新增的用户数。我使用 Mongoose 来操作数据库,可以通过 aggregate 实现需求。
前提
user 模型:
1 | const UserSchema = mongoose.Schema({ |
日期格式:2021-04-11 02:18:51.418Z
分析
首先获取今天的日期,然后筛选出过去一周的用户,最后通过 createTime
进行分组。
实现
1 | const today = new Date() |
$add
操作是因为 MongoDB 存储的数据是按照世界时间存储的,加上8小时(毫秒)才是国内时间。
$match
在匹配 createTime
时,记得使用 new Date()
格式化 day
,不然 day
只是个字符串,无法匹配。
参考