C# 按和划分的Mongo群

C# 按和划分的Mongo群,c#,mongodb,C#,Mongodb,我有以下记录: { "_id" : ObjectId("5a0108d11b4af44a24d36e72"), "Country" : "MY", "Company_ID" : "MY01", "Staff_ID" : "NBJ64", "Calculation" : { "CustSatisfaction" : [ { "Trans_Year" : 2017, "Trans_Month" : 7,

我有以下记录:

{
"_id" : ObjectId("5a0108d11b4af44a24d36e72"),
"Country" : "MY",
"Company_ID" : "MY01",
"Staff_ID" : "NBJ64",
"Calculation" : {
    "CustSatisfaction" : [ 
        {
            "Trans_Year" : 2017,
            "Trans_Month" : 7,
            "HH" : 10,
            "HN" : 0,
            "NH" : 4,
            "NN" : 0
        }, 
        {
            "Trans_Year" : 2017,
            "Trans_Month" : 7,
            "HH" : 1,
            "HN" : 0,
            "NH" : 5,
            "NN" : 0
        }
    ]
}
  }
我试图得到HH,HN,NH,NN的总和结果,如下所示,按年份和月份分组:

{
"_id" : ObjectId("5a0108d11b4af44a24d36e72"),
"Country" : "MY",
"Company_ID" : "MY01",
"Staff_ID" : "NBJ64",
"Calculation" : {
    "CustSatisfaction" : [ 
        {
            "Trans_Year" : 2017,
            "Trans_Month" : 7,
            "HH" : 11,
            "HN" : 0,
            "NH" : 9,
            "NN" : 0
        }
    ]
}
  }
我的总计有以下代码:

            var grouping = new BsonDocument {
        { "_id", new BsonDocument { { "build", "$WeCare.CustSatisfaction.Trans_Year" }, { "status", "$WeCare.CustSatisfaction.Trans_Month" } } },
        { "HH", new BsonDocument("$sum", 1)  }
    };
            var aggregate = mongoDB.Consultant.Aggregate().Group(grouping).ToList();

我得到的结果变成{{{u id:{“build:[2017,2017],“status:[7,7]},“HH”:1}。这很奇怪。

好的,所以它本质上是一个5路组(国家、公司、员工以及数组中的年和月)。这应该可以做到:

db.foo.aggregate([
{$unwind: "$Calculation.CustSatisfaction"} // important step!
,{$group: {_id: {country: "$Country",
             company: "$Company_ID",
             staff: "$Staff_ID",
             year: "$Calculation.CustSatisfaction.Trans_Year",
             mon: "$Calculation.CustSatisfaction.Trans_Month"},
       tHH: {$sum: "$Calculation.CustSatisfaction.HH"},
       tHN: {$sum: "$Calculation.CustSatisfaction.HN"},
       tNH: {$sum: "$Calculation.CustSatisfaction.NH"},
       tNN: {$sum: "$Calculation.CustSatisfaction.NN"}
}}
                ]);

在一个文档中的一个客户满意度字段中,交易年和交易月是否始终相同?或者,该数组中的年和月是否会发生变化,从而迫使您对不同文档进行求和?年和月可能会发生变化。这只是一个例子,对不起!另外:您是否希望按国家、公司ID和员工ID分组?i、 e.按三年和跨年和跨月分组?或者只有跨年和跨月?哦,是的。国家、公司ID和员工ID也需要是团体。对不起,我的错。不要羞于回答+1。