我有一個在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