pymongo.errors.DocumentTooLarge:“聚合”命令文档太大

Posted

技术标签:

【中文标题】pymongo.errors.DocumentTooLarge:“聚合”命令文档太大【英文标题】:pymongo.errors.DocumentTooLarge: 'aggregate' command document too large 【发布时间】:2019-06-01 17:26:34 【问题描述】:

我用pymongo聚合数据,数据大概1000万,我用

df_list = mycol.aggregate(['$match': 'tbl_id': '$in': doc_list, '$project': '_id': 0], allowDiskUse=True) # doc_list may be very large

聚合数据,但还是出错了,pymongo.errors.DocumentTooLarge: 'aggregate' command document too largeallowDiskUse=True 对我不起作用。如何处理?

【问题讨论】:

【参考方案1】:

Mongo 文档不能大于 16MB。这意味着您的查询对象:

df_list = mycol.aggregate(['$match': 'tbl_id': '$in': doc_list, '$project': '_id': 0], allowDiskUse=True) # doc_list may be very large

不能大于 16MB,您可能有一个巨大的 doc_list,超过了允许的最大大小。 allowDiskUse 选项没有任何作用,因为问题在此之前。

您可以通过批处理 doc_list 将查询拆分为多个查询,虽然速度较慢,但​​可以解决问题。

【讨论】:

以上是关于pymongo.errors.DocumentTooLarge:“聚合”命令文档太大的主要内容,如果未能解决你的问题,请参考以下文章