【发布时间】:2017-12-11 16:29:21
【问题描述】:
我的数据格式为:
缺陷周成本 aaa 1 123123 bbbb 1 2132131 cccc 1 213213 厄里亚 1 123 阿萨德 1 12343 dddd 1 123214 悲伤 1 13123 eeee 1 1313 aaa 2 141591.45 bbbb 2 2451950.65 cccc 2 245194.95 厄里亚 2 141.45 阿萨德 2 14194.45 dddd 2 141696.1 悲伤 2 15091.45 eeee 2 1509.95 aaaa 3 261944.1825 bbbb 3 4536108.703 cccc 3 453610.6575 厄里亚 3 261.6825 阿萨德 3 26259.7325 dddd 3 262137.785 悲伤 3 27919.1825 eeee 3 2793.4075我需要对缺陷进行汇总,但我不需要所有缺陷的汇总成本(只是少数)。我已经得到了缺陷列表
我需要对其执行聚合。
例如:缺陷列表将存储在一个变量中,如下所示:
var specificdefects = [ aaaa, bbbb, cccc, dddd, eeee ]
我的最终目标是获得每周特定缺陷的总成本(类似于下面)。
缺陷 1 2 3 aaaa 213213 123213 21313 bbbb 234534.3 135534.3 23444.3 cccc 257987.73 149087.73 25788.73 dddd 283786.503 163996.503 28367.603 eeee 312165.1533 180396.1533 31204.3633我知道我可以将每个缺陷传递给$match 子句,然后执行聚合。但是每个缺陷都需要单独的查询(这是不希望的)。
我们可以使用单个查询来做到这一点吗?如果是这样,怎么做?
【问题讨论】:
-
您可以使用聚合。使用 $match 和 $in 缺陷列表来过滤匹配的文档,然后是缺陷的 $group 和带有 $sum 累加器的周来汇总成本。
标签: mongodb mongodb-query