问题描述
Exceeded memory limit for $group, but didn’t allow external sort. Pass allowDiskUse:true to opt in
query_data_total = coll.aggregate([ {'$match': {'order_date': {'$gte': start_date, '$lte': end_date},}}, {'$group': {'_id': '$order_date','gmv': {'$sum': '$price'}, 'ticket_num': {'$sum': 1}, 'order_num': {'$addToSet': '$order_id'}} }])使用aggregate聚合查询 但查询几天的数据的时候没有问题 当天数多了之后就报错 用的是pymongo
问题解答
回答1:$group有内存限制你的数据量超过了限制而且没有指定允许使用额外的磁盘进行操作于是就报错了The $group stage has a limit of 100 megabytes of RAM. By default, if the stage exceeds this limit, $group will produce an error. However, to allow for the handling of large datasets, set the allowDiskUse option to true to enable $group operations to write to temporary files.See db.collection.aggregate() method and the aggregate command for details.