Exceeded memory limit for $group, but didn't allow external sort. Pass allowDiskUse:true to opt in

原语句:

db.carMongoDTO.aggregate({'$group':{'_id': {'licensePlates': '$licensePlates'},'uniqueIds': {'$addToSet': '$_id'},'count' : {'$sum': 1}}}, {'$match': {'count': {'$gt': 1}}})

报错:

Exceeded memory limit for $group, but didn't allow external sort. Pass allowDiskUse:true to opt in

 

原因是聚合的结果必须要限制在16M以内操作,(mongodb支持的最大影响信息的大小),否则必须放在磁盘中做缓存(allowDiskUse=True)

修改为:

db.carMongoDTO.aggregate([{'$group':{'_id': {'licensePlates': '$licensePlates'},'uniqueIds': {'$addToSet': '$_id'},'count' : {'$sum': 1}}},{'$match': {'count': {'$gt': 1}}},{ "$limit" : 10}],{ allowDiskUse: true })

 

posted @ 2019-10-17 20:08  __Yoon  阅读(872)  评论(0编辑  收藏  举报