【发布时间】:2017-09-28 20:58:32
【问题描述】:
我正在使用一个包含该用户的用户名和工作时间的表。该集合对同一用户有多个持续时间。我想显示该用户名的不同用户名和持续时间总和。
db.collection.aggregate([
{ "$match": { FacilityID: '59a53f0c6077b2a029c52b7f', ProjectID: '59c1171f734bcb3038e2bb67'} },
{ "$group": { _id: { TeamMemberUserID: "$TeamMemberUserID",Duration: "$Duration"}} },
{ "$project": { TeamMemberUserID: "$_id.TeamMemberUserID", _id: 0, Duration: "$_id.Duration", _id: 0} }
])
它正在显示用户名 3 次并显示
siva 40
siva 40
siva 40
因为该用户对不同类型的工作有不同的工期,例如:20 小时用于设计,10 小时用于编码,10 小时用于测试。
但我想向用户显示他所有工作的持续时间总和。
User Name: Phase duration
Siva Testing 10
siva Coding 10
siva Designing 20
预期输出:
Siva 40
上述查询在按持续时间分组时执行用户名。持续时间会有所不同,因为它根据持续时间显示用户名。
【问题讨论】:
-
能否请edit您的问题包括集合中的一些示例文档和您预期的输出文档?
-
请添加符合您查询的文档。例如:
FacilityID不在文档中。 -
基于我选择用户的 FacilityID。这不是必需的。
标签: mongodb mongodb-query aggregation-framework