相关疑难解决方法(0)

MongoDB在索引列上选择count(distinct x) - 计算大型数据集的唯一结果

我已经阅读了几篇文章和示例,并且尚未找到在MongoDB中执行此SQL查询的有效方法(其中有数百万个 文件)

第一次尝试

(例如,从这个几乎重复的问题 - Mongo相当于SQL的SELECT DISTINCT?)

db.myCollection.distinct("myIndexedNonUniqueField").length
Run Code Online (Sandbox Code Playgroud)

显然我得到了这个错误,因为我的数据集非常庞大

Thu Aug 02 12:55:24 uncaught exception: distinct failed: {
        "errmsg" : "exception: distinct too big, 16mb cap",
        "code" : 10044,
        "ok" : 0
}
Run Code Online (Sandbox Code Playgroud)

第二次尝试

我决定尝试做一组

db.myCollection.group({key: {myIndexedNonUniqueField: 1},
                initial: {count: 0}, 
                 reduce: function (obj, prev) { prev.count++;} } );
Run Code Online (Sandbox Code Playgroud)

但我收到此错误消息:

exception: group() can't handle more than 20000 unique keys
Run Code Online (Sandbox Code Playgroud)

第三次尝试

我还没有尝试,但有几个涉及的建议 mapReduce

例如

mongodb

79
推荐指数
2
解决办法
7万
查看次数

标签 统计

mongodb ×1