2016-08-01 30 views
0

我有一个聚集脚本,让我到结果集,它看起来像下面一组:MongoDB的组和不工作

{ 
"_id" : "SI-3", 
"party_uuid" : "dfa1e80a-5521-11e6-beb8-9e71128cae77", 
"transaction_date" : ISODate("2016-04-14T00:00:00.201+0000"), 
"transaction_net_value" : 1666.67, 
"object_category" : "Revenue", 
"object_origin_category" : "Bookkeeping", 
"object_origin" : "Sage One", 
"item_quantity" : NumberInt(10), 
"item_name" : "Product Three", 
"item_category" : "Sales Revenue", 
"item_ net_total_value" : 1666.67 
} 
{ 
"_id" : "SI-2", 
"party_uuid" : "dfa1e80a-5521-11e6-beb8-9e71128cae77", 
"transaction_date" : ISODate("2016-05-19T00:00:00.201+0000"), 
"transaction_net_value" : NumberInt(1500), 
"object_category" : "Revenue", 
"object_origin_category" : "Bookkeeping", 
"object_origin" : "Sage One", 
"item_quantity" : NumberInt(1), 
"item_name" : "Product One", 
"item_category" : "Sales Revenue", 
"item_ net_total_value" : NumberInt(1500) 
} 
{ 
"_id" : "SI-15", 
"party_uuid" : "dfa1e80a-5521-11e6-beb8-9e71128cae77", 
"transaction_date" : ISODate("2016-07-11T00:00:00.201+0000"), 
"transaction_net_value" : 8333.33, 
"object_category" : "Revenue", 
"object_origin_category" : "Bookkeeping", 
"object_origin" : "Sage One", 
"item_quantity" : NumberInt(7), 
"item_name" : "Product Four", 
"item_category" : "Sales Revenue", 
"item_ net_total_value" : 8333.33 
} 
{ 
"_id" : "SI-14", 
"party_uuid" : "dfa1e80a-5521-11e6-beb8-9e71128cae77", 
"transaction_date" : ISODate("2016-07-11T00:00:00.201+0000"), 
"transaction_net_value" : NumberInt(7500), 
"object_category" : "Revenue", 
"object_origin_category" : "Bookkeeping", 
"object_origin" : "Sage One", 
"item_quantity" : NumberInt(6), 
"item_name" : "Product Four", 
"item_category" : "Sales Revenue", 
"item_ net_total_value" : NumberInt(7500) 
} 
{ 
"_id" : "SI-1", 
"party_uuid" : "dfa1e80a-5521-11e6-beb8-9e71128cae77", 
"transaction_date" : ISODate("2016-06-16T00:00:00.201+0000"), 
"transaction_net_value" : NumberInt(1500), 
"object_category" : "Revenue", 
"object_origin_category" : "Bookkeeping", 
"object_origin" : "Sage One", 
"item_quantity" : NumberInt(1), 
"item_name" : "Product One", 
"item_category" : "Sales Revenue", 
"item_ net_total_value" : NumberInt(1500) 
} 
{ 
"_id" : "SI-1", 
"party_uuid" : "dfa1e80a-5521-11e6-beb8-9e71128cae77", 
"transaction_date" : ISODate("2016-06-16T00:00:00.201+0000"), 
"transaction_net_value" : NumberInt(1500), 
"object_category" : "Revenue", 
"object_origin_category" : "Bookkeeping", 
"object_origin" : "Sage One", 
"item_quantity" : NumberInt(1), 
"item_name" : "Product Twenty Two", 
"item_category" : "Sales Revenue", 
"item_ net_total_value" : NumberInt(1500) 
} 

当我加入最后阶段,如下图所示,我得到的结果不如预期的那样,$sum。我得到0当它显然不是0.任何想法我在我的$group阶段做错了什么?

$group : { 
_id: {"party_uuid" : "$party_uuid", 
    "transaction_year" : {$year : "$transaction_date"}, 
    "transaction_month" : {$month : "$transaction_date"}, 
    "category" : "$item_category", 
    "object_origin_category" : "$object_origin_category", 
    "object_origin" : "$object_origin"}, 
    "month_net_value" : { $sum: "$item_net_total_value" } 
} 

这导致

{ 
"_id" : { 
    "party_uuid" : "dfa1e80a-5521-11e6-beb8-9e71128cae77", 
    "transaction_year" : NumberInt(2016), 
    "transaction_month" : NumberInt(6), 
    "category" : "Sales Revenue", 
    "object_origin_category" : "Bookkeeping", 
    "object_origin" : "Sage One" 
}, 
"month_net_value" : NumberInt(0) 
} 
{ 
"_id" : { 
    "party_uuid" : "dfa1e80a-5521-11e6-beb8-9e71128cae77", 
    "transaction_year" : NumberInt(2016), 
    "transaction_month" : NumberInt(5), 
    "category" : "Sales Revenue", 
    "object_origin_category" : "Bookkeeping", 
    "object_origin" : "Sage One" 
}, 
"month_net_value" : NumberInt(0) 
} 
{ 
"_id" : { 
    "party_uuid" : "dfa1e80a-5521-11e6-beb8-9e71128cae77", 
    "transaction_year" : NumberInt(2016), 
    "transaction_month" : NumberInt(7), 
    "category" : "Sales Revenue", 
    "object_origin_category" : "Bookkeeping", 
    "object_origin" : "Sage One" 
}, 
"month_net_value" : NumberInt(0) 
} 
{ 
"_id" : { 
    "party_uuid" : "dfa1e80a-5521-11e6-beb8-9e71128cae77", 
    "transaction_year" : NumberInt(2016), 
    "transaction_month" : NumberInt(4), 
    "category" : "Sales Revenue", 
    "object_origin_category" : "Bookkeeping", 
    "object_origin" : "Sage One" 
}, 
"month_net_value" : NumberInt(0) 
} 

再次感谢

回答

1

难道说你有你的密钥的空白:

"$item_net_total_value" 

"item_ net_total_value" 

与比较

+0

这很搞笑,绝对正确 - ffs - 谢谢你指出,doh! –

+0

好老四眼原则!别客气 :-) – Matt