我已经阅读了几篇文章和示例,并且尚未找到在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 ×1