3
我使用的NodeJS和MongoDB数据库猫鼬聚集GROUPBY,一年
我的文档是:
{
"_id": "58466d6a0b3f4d2e2fa22905",
"updatedAt": "2016-12-06T07:48:58.435Z",
"createdAt": "2017-12-06T07:48:58.435Z",
"userId": "56d04e265a2100c72a311334",
"__v": 0
}
用户会给FROM日期,TODATE和频率在客户方在其频率值可其中0表示日,1表示周,2表示年。
在以上数据的基础上,我想生成报告
为前:如果用户给FROM日期= 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其他更好的方法也欢迎
编辑:我还希望文件的数量在用户ID上是唯一的
你能帮助我在上面的问题 – Sam
我添加了一个例子,唯一的区别是,频率1它输出周数作为组键,而不是像“2016-12-01至2016-12-06”这样的字符串。希望能帮助到你! – Rudi
感谢您的帮助!这件事我也可以实现与$ dayOfMonth和$ year ..但主要问题是与星期..我怎么能转换本周数量日期,因为我高于以上数据写入excel文件生成报告 – Sam