1、Distinct聚合查询报错
db.users.distinct("uname")
db.runCommand({"distinct":"users","key":"uname"})
在数据量很大的时候,使用这种方法查询时,查询的结果集大于16M 时会查询失败,失败信息如下:
比如要对名字字段name进行distinct
db.XX.distinct('imsi')
报错如下:
[main] Error: distinct failed: {
"ok" : 0,
"errmsg" : "distinct too big, 16mb cap",
"code" : 17217,
"codeName" : "Location17217"
} :

解决办法:改成用聚合方式
db.XX.aggregate([{$group:{_id:{'imsi':"$imsi"},count:{$sum:1}}}],{ allowDiskUse: true})