MongoDB Map-Reduce的奇怪结果

时间:2015-10-13 15:07:46

标签: javascript mongodb mapreduce

我每天2次在MongoDB集合上运行Map-reduce作业。它基本上统计订单并将它们放在不同的类别(包裹的大小,交付公司)。结果文档是一个对象,其中类别为键,订单数为值(整数)。

有时,Document的值会变成某种奇怪的Javascript代码。

以下是"代码"的第一行(超过500行):

0100function (){ 
var u = {}, a = []; 
    for(var i = 0, l = this.length; i < l; ++i){ 
    if(u.hasOwnProperty(this[i])) { 
    continue; 
    } 
    a.push(this[i]); 
    u[this[i]] = 1; 
    } 
    return a; 
    }1111111111111111111111111111111111111111111111function (){ 
    var u = {}, a = []; 
    for(var i = 0, l = this.length; i < l; ++i){ 
    if(u.hasOwnProperty(this[i])) { 
    continue; 
    } 
    a.push(this[i]); 
    u[this[i]] = 1; 
    } 
    return a; 
    }( 052function (){ 
    var u = {}, a = []; 
    for(var i = 0, l = this.length; i < l; ++i){ 
    if(u.hasOwnProperty(this[i])) { 
    continue; 
    } 
    a.push(this[i]); 
    u[this[i]] = 1; 
    } 
    return a; 
    }1111111111111111111111111function (){ 

mongod --version返回

db version v2.6.10
2015-10-13T15:28:49.990+0000 git version: 5901dbfb49d16eaef6f2c2c50fba534d23ac7f6c

MAP功能

function () {
var amount = 0;
if(this.hasOwnProperty("articles")){
    this.articles.forEach(function (a) {
        amount += parseInt(a.amount);
    });
}
if(amount>0)emit(amount, 1);
emit("total", 1);
if (amount == 1) {
    emit("1SS", 1);
} else {
    emit("Box", 1);
}

减少

function (key, vals) {
        var sum = 0;
        for (var i in vals) {
            sum += vals[i];
        }
        return sum;

    }

示例文档

{
  "_id": "1SS",
  "value":12
}

0 个答案:

没有答案