C# 我怎样才能让Mapreduce按年获得?
任何人都可以帮助我,, 我的大脑在堆积,为了把这个集合制作成mapreduce, 如何按“年”键获取PurchaseAmount、PurchaseReturnAmount和TotalAmount。C# 我怎样才能让Mapreduce按年获得?,c#,mongodb,C#,Mongodb,任何人都可以帮助我,, 我的大脑在堆积,为了把这个集合制作成mapreduce, 如何按“年”键获取PurchaseAmount、PurchaseReturnAmount和TotalAmount。 { "_id" : { "OwnerId" : "coba@aja.com", "SupplierId" : BinData(3,"AYC8In8bFkGYNx34poQLlg=="), "GroupId" : BinDa
{
"_id" : {
"OwnerId" : "coba@aja.com",
"SupplierId" : BinData(3,"AYC8In8bFkGYNx34poQLlg=="),
"GroupId" : BinData(3,"mzWBCilngEGd72YpeyijcQ=="),
"ProductId" : BinData(3,"gZ2g/syue06v8b88+0pqRA=="),
"Date" : ISODate("2013-01-15T00:00:00Z")
},
"value" : {
"OwnerId" : "oetawan@dokuku.com",
"Date" : ISODate("2013-01-15T00:00:00Z"),
"SupplierId" : BinData(3,"AYC8In8bFkGYNx34poQLlg=="),
"SupplierName" : "Matahari",
"GroupId" : BinData(3,"mzWBCilngEGd72YpeyijcQ=="),
"GroupCode" : "Umum",
"GroupName" : "Umum",
"ProductId" : BinData(3,"gZ2g/syue06v8b88+0pqRA=="),
"ProductCode" : null,
"ProductBarcode" : "IPAD2",
"ProductName" : "iPad 2",
"PurchaseAmount" : 19500000,
"PurchaseReturnAmount" : 0,
"TotalAmount" : 19500000
}
}
我想使用这个映射将其简化为C#这里有一个使用MR的shell示例。当然,您也可以使用聚合框架来实现它,但您可能希望在后台运行它
db.so.mapReduce(
function () { /* map */
var key = this._id.Date.getFullYear();
emit(key, { PurchaseAmount:this.value.PurchaseAmount, PurchaseReturnAmount:this.value.PurchaseReturnAmount, TotalAmount:this.value.TotalAmount } );
},
function (key, array) { /* reduce*/
var result = { PurchaseAmount: 0, PurchaseReturnAmount: 0, TotalAmount: 0 };
for (var i = 0; i < array.length; i++) {
{
result.PurchaseAmount += array[i].PurchaseAmount;
result.PurchaseReturnAmount += array[i].PurchaseReturnAmount;
result.TotalAmount += array[i].TotalAmount;
}
}
return result;
},
{
out: "so_mr_example",
query:{}
}
);
db.so_mr_example.find();
AkangKurui,在JSON中,年的值在哪里?我认为可以通过使用javascript命令在映射阶段将date对象转换为Year对象来实现这一点,但我不知道如何使用C#library实现这一点。在映射reduce中,您可以
emit(this.\u id.date.getFullYear(),{//PurchaseReturnAmount等所有其他属性})
来做你想做的事情。别忘了你需要将它标记为已回答。非常感谢!
{ "_id" : 2013, "value" : { "PurchaseAmount" : 39000000, "PurchaseReturnAmount" : 0, "TotalAmount" : 39000000 } }
{ "_id" : 2014, "value" : { "PurchaseAmount" : 19500000, "PurchaseReturnAmount" : 0, "TotalAmount" : 19500000 } }