私のMongoDBデータベース、コレクションにそのような構造がありますtransactions_dev
:
{
"_id": ObjectId("4f7aab939e2530cc028552f2"),
"count": 1,
"item-id": 2230494020,
"price": 34.99,
"seller-id": 16435416,
"time": "20120403",
"type": "now"
}
私はそれを別のコレクションに保存したいと思います.andによってグループ化されますseller-id
(time
各セラーIDの毎日の売上(SUM(価格))を提示したいと思います)。
そうするために、私はこの mapreduce を書きました:
db.runCommand({
mapreduce: "transactions_dev",
map: function() { emit(
{ t: this.time, s: this.seller-id},
{ msum: this.price }
);},
reduce: function(key, vals) {
var ret = {msum: 0};
for(var i=0; i< vals.length; i++) {
ret.msum += vals[i].msum;
}
return ret;
},
out: 'result1',
verbose: true
});
しかし、私はそのような例外を得ています:
"errmsg" : "exception: map invoke failed: JS Error: ReferenceError: id is not defined nofile_b:1",
"code" : 9014,
これは、削減されたデータの _id フィールドを明示的に定義する必要があるということですか?
どうやってするの?