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})
 
 posted on 2019-12-13 15:07  xibuhaohao  阅读(372)  评论(0编辑  收藏  举报