我正在使用Node.js和MongoDB进行数据库操作。
我的文档如下:
{
"_id": "58466d6a0b3f4d2e2fa22905",
"updatedAt": "2016-12-06T07:48:58.435Z",
"createdAt": "2017-12-06T07:48:58.435Z",
"userId": "56d04e265a2100c72a311334",
"__v": 0
}
用户将在客户端提供fromDate、toDate和frequency,其中frequency值可以为0、1、2,其中0表示天,1表示周,2表示年。
基于上述数据,我想生成报告。
例如:如果用户提供fromDate=2016-12-1和toDate=2016-12-6。
如果频率为0,结果将是
{
2016-12-01:{
count:1
}
2016-12-02:{
count:7
}
2016-12-06:{
count:8
}
}
如果频率为1,结果将会是:
{
2016-12-01 to 2016-12-06:{
count:16
}
}
如果频率是2,结果将会是:
{
2016:{
count:16
}
}
文档计数的意思是指文件数量。
我已经这样做了:
var aggregate = [{
$match: {
createdAt: {
$gte: fromDate,
$lt: toDate
}
}
}, {
$group: {
// what should i will do here
},
count: {
$sum: 1
}
}
}]
return LoginReportModel.aggregate(aggregate).exec();
或者,如果您知道其他更好的方法,例如使用Lodash,也可以考虑
编辑:我还希望按userId计算文档数量时是唯一的