在用户文档中,我已经注册了用户。我想通过API显示最近7天的统计数据。第一天- 7个用户,第二天- 5个用户,第三天- 3个用户...... UserSchema包含- name,email,createdAt等。我如何在Mongodb/mongoose中做到这一点?
样本数据:
{
"_id": "612fa439ddb04331d6ea1e5d",
"name": "imran-1630512185253",
"createdAt": "2021-09-01T16:03:05.266Z",
},
{
"_id": "612fa439ddb04331d6ea1e5d",
"name": "imran-1630512185253",
"createdAt": "2021-08-31T16:03:05.266Z",
},
...........
预期输出:
"filterData" : {
1st day: 3,
2nd day: 5,
3rd day: 3,
4th day: 8,
...
}
使用这个API,我想创建一个图表来显示统计数据。该API应该提供哪一天,有多少用户被创建。
2条答案
按热度按时间p4rjhz4m1#
你可以这样做
然后
bq3bfh9z2#
您所描述的查询是将一系列包含UTC日期时间的文档按天分组。
MongoDB在内部将日期/时间存储为自1970年1月1日以来的毫秒数,因此第一步需要计算每个文档的起始日期,然后按该起始日期值进行分组。
如果您使用的是MongoDB 5.0,则可以使用$dateTrunc操作符:
对于旧版本,您可以计算表示日期开始的日期对象,或建立只包含日期的字串。
对于字符串选项:
因此,总体聚合管道将是: