我有一个在mongodb中的集合,如下所述。节点js,Mongoose计算总和并返回多个字段
{ "UserID" : "User1",
"TaskId" : "Task1",
"SubTaskID" : "Subtask1",
"StartDate" : ISODate("2016-02-06T05:00:00Z"),
"EndDate" : ISODate("2016-02-06T05:00:00Z"),
"Hours" : 8, //no of hours worked between StartDate and EndDate on the subtask
"Department:"DEPT1"; //I can have multiple departments
"__v" : 0}
现在我想计算的开始日期和结束日期以及由该期间内所有成员的部门进入该子任务的总小时数之间的总工作时数。我的输出应该像
{
"TaskId":"TaskId1",
"UserId":"UserId1",
"startDate":"2016-02-06",
"endDate":"2016-02-06",
"totalHours": 10.0,
"deptTotalHours":100.0,
"subtasks": [
{
"SubTaskID": "SubTask1",
"totalHours": 4.0,
"deptTotalHours":40.0
},
{
"SubTaskID": "SubTask2",
"totalHours": 6.0,
"deptTotalHours":60.0
}]
}
我与$匹配,$项目和$组试过,但我不能BLE得到指定格式的响应。有人可以建议我如何获得上述指定格式的回复吗?
所以,如果我理解正确的话,那么“totalHours”,就是要通过选定的用户?或者可能是所有用户,但只是组中的当前用户?那么什么是“deptTotalHours”?它是否与当前用户不同?或者是否有其他逻辑背后会选择“部门”?这些是你的解释中缺少逻辑的部分,可以在编辑中加以阐述。 –
嗨七,非常感谢您的快速回复。请在下面找到解释。 totalHours:所选用户在该持续时间内在特定子任务上工作的总小时数。 deptTotalHours:部门中所有用户(包括所选用户)在该子任务内工作的总时间。 – Rams