如何使用map/reduce处理超过10000个唯一键以便在MongoDB中进行分组?

Mag*_*son 5 mongodb

我正在使用MongoDB v1.4和mongodb-csharp驱动程序,我尝试对具有10000个以上密钥的数据存储进行分组,因此我收到此错误:

assertion: group() can't handle more than 10000 unique keys

使用像这样的c#代码:

Document query = new Document().Append("group",
new Document()
.Append("key", new Document().Append("myfieldname", true).Append("length", true))
.Append("$reduce",
      new CodeWScope(
          "function(obj,prev) { prev.count++; }"))
.Append("initial", new Document().Append("count", 0))
.Append("ns", "myitems"));
Run Code Online (Sandbox Code Playgroud)

我读到我应该使用map/reduce,但我无法弄清楚如何.有人可以说明如何使用map/reduce吗?
或者还有其他方法可以解决这个限制吗?
谢谢.

编辑:我忘记了我的密钥集中有2列,添加了.

Dar*_*rov 1

尝试以下map/reduce功能:

map = function() { 
    emit(this.myfieldname, 1); 
}

reduce = function(k, vals) {
    var sum = 0;
    for(var i in vals) {
        sum += vals[i];
    }
    return sum;
}
Run Code Online (Sandbox Code Playgroud)