首页 > 解决方案 > Mongodb pymongo 错误 DocumentTooLarge

问题描述

我正在尝试执行以下查询: 查询

问题是{"id": {"$nin": lista}}。lista 是一个 id 数组,包含 1.000.000 个超过 98MB 大小的 id。由于 Mongodb 的限制为 16MB,因此我似乎无法发送此查询而不会收到以下错误:pymongo.errors.DocumentTooLarge: BSON document too large (107382731 bytes) - the connected server supports BSON document sizes up to 16777216 bytes.。我不完全理解的东西,因为限制应该是针对集合内的文档。

我的问题是:那我如何排除 id 列表/数组?

标签: mongodb

解决方案


您可以尝试通过聚合管道重做查询(并将 id 存储在集合中,而不是在查询中发送它们)但是您是对的,查询大小是有限制的。

虽然我没有亲自测试过,但我的印象是,服务器在技术上允许传入的查询最大为 48 mb,而不是如您的消息中所述的 16,但您需要找到一个也允许 48 mb 查询大小的驱动程序和我不知道哪些会。也有可能 48 mb 限制仅适用于查找和修改查询,而查找和修改部分仍然限制为 16 mb。


推荐阅读