【发布时间】:2014-07-12 17:33:39
【问题描述】:
我是 PHP 新手以及 mongo DB 和 我有一个包含 80000 条记录的数据集,这是一个本地部署。
我的数据结构很简单:
(
[_id] => MongoId Object
(
[$id] => 53c146aebc7d867d058b94b3
)
[name] => Mark
[txnType] => Borrowed
[amount] => 5876
)
我正在运行如下定义的 Map Reduce 作业:
$map = new MongoCode("function ()
{
{
emit({name:this.name,type:this.txnType},this.amount);
}
}");
$reduce = new MongoCode("
function (key, values)
{
var total=0;
var count=0;
for (var i in values) {
if (!isNaN(values[i])) {
total+=values[i];
};
count++;
}
return {total:total, count:count};
}
");
$sales = $db->command(array(
"mapreduce" => "data",
"map" => $map,
"reduce" => $reduce,
"out" => "sales"
));
这个概念基本上是有 4 个人可能有类型为 Borrowed、Sold、Purchase 和 Lent 的交易。每条记录代表一个 txn。
我只想创建一个数据透视,将数据获取为:
名称:类型:总金额:Txns 计数
支撑的数据有些混乱。加起来的计数应该是 80000,但加起来只有 216。
我无法理解为什么会这样.. 谁能帮帮我吗。我哪里错了,要纠正什么。
我的需要基本上是为交易制定分析。
【问题讨论】:
标签: php mongodb mapreduce aggregation-framework