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"
} :
![MongoDB 聚合查询报错 MongoDB 聚合查询报错](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRaekl3TVRndVkyNWliRzluY3k1amIyMHZhUzFpWlhSaEx6RTFNekEzT0RJdk1qQXhPVEV5THpFMU16QTNPREl0TWpBeE9URXlNVE14TlRBek5UWTNNRGd0TnpZeU9ESXpNakk0TG5CdVp3PT0uanBn.jpg?w=700&webp=1)
解决办法:改成用聚合方式
db.XX.aggregate([{$group:{_id:{'imsi':"$imsi"},count:{$sum:1}}}],{ allowDiskUse: true})