繁体   English   中英

日期范围内的Mongodb Sum字段和其他过滤器

[英]Mongodb Sum field within date range and other filters

假设我的mongodb中具有以下文档结构:

{
  _id: "tMSfNq9JR85XDaQe5"
  customerid: "QDGvBQhS6vYgZtnRr"
  employeeid: "QDGvBQhS6vYgZtnRr" 
  date: Sun Dec 07 2014 19:50:21 GMT+0800 (HKT) 
  projectid: "S83NEGHnrefvfASrf" 
  hours: 2
}

查询特定日期范围内的数据时,是否可以获取按雇员和日期分组的特定项目和客户的总工时,因此输出将例如:

{ "projectid":"XXX", "date":"Dec 1, 2014", "employeeid":"AAA", "totalHrs":"20" }
{ "projectid":"XXX", "date":"Dec 1, 2014", "employeeid":"BBB", "totalHrs":"11" }
{ "projectid":"XXX", "date":"Dec 2, 2014", "employeeid":"AAA", "totalHrs":"3" }
{ "projectid":"XXX", "date":"Dec 2, 2014", "employeeid":"BBB", "totalHrs":"5" }
{ "projectid":"XXX", "date":"Dec 2, 2014", "employeeid":"CCC", "totalHrs":"18" }

谢谢

嗨,据我所知,我认为您希望对projectid和employeeid进行分组,以查找所需的输出,因此在这种情况下,下面的汇总可能有效

db.collectionName.aggregate(
                       {"$group":{"_id":{"projectId":"$projectid","employeeId":"$employeeid","date":"$date"},
                       "totalHrs":{"$sum":"$hours"}}},
                      {"$project":{"projectid":"$_id.projectId",
                         "date":"$_id.date","employeeid":"$_id.employeeId",
                        "totalHrs":"$totalHrs",
                          "_id":0}}
                        )

您需要按projectid,date,employeeid分组

db.collectionname.aggregate({"$project":{"projectid":1,"date":1,"employeeid":1,"totalHrs":1}},
{"$group":{"_id":{"$projectId":"$projectid","date":"$date","employeeId":"$employeeid"}, 
"totalHrs":{"$sum":"$hours"}}})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM