如何更新大mongodbcollection?

How to Update a large mongodb collection?

我在 python 中使用 pymongo 来更新 mongodb 中的大型 collection。我想防止在 collection 中添加重复的 objects。所以,我用这个命令来更新整个 mongodb collection:

mycollection.update_one({'obj_id': "MY_OBJ_ID"}, {"$set": {"my_object": obj }}, upsert=True)  

当collecion size变大时,显示这个错误:

Resulting document after update is larger than 16777216, full error: {'index': 0, 'code': 17419, 'errmsg': 'Resulting document after update is larger than 16777216'}

问题是,我该如何更新这个 Collection? 我是 mongodb

的新人

您可以查看 mongodb updatemany 函数 https://docs.mongodb.com/manual/reference/method/db.collection.updateMany/

错误与内存无关。 MongoDB 将集合中任何文档的大小限制为 16Mb。您添加 obj 项的更新意味着生成的文档超过 16Mb。

您需要构建数据以保持低于此限制。将所有数据放在一个文档中不是推荐的方法。您应该考虑在集合中使用多个文档。