您可以在 PyMongo 中更新的文档数量是不是有上限?

Posted

技术标签:

【中文标题】您可以在 PyMongo 中更新的文档数量是不是有上限?【英文标题】:Is there an upper limit on the number of documents you can update in PyMongo?您可以在 PyMongo 中更新的文档数量是否有上限? 【发布时间】:2018-07-03 13:38:55 【问题描述】:

我正在使用一些看起来像这样的 PyMongo 代码更新 mongo 集合中的约 600,000 个文档

bulk = coll.initialize_ordered_bulk_op()

for index, row in df.iterrows():

    bulk.find( '_id': ObjectId(row['id']) ).update( '$set':  "X": 
    row['X'].split(',')  )

bulk.execute()

在further investigating 之后,我认为这对于超过 100,000 个文档可能会失败,并且我将不得不执行类似于here 建议的操作。

但是它适用于所有文档。我只是想知道我误解了什么。

提前致谢。

【问题讨论】:

【参考方案1】:

如文档here 中所述:

每组操作最多可以有 1000 个操作。如果一个组超过了这个限制,MongoDB 会将该组分成 1000 人或更少的更小的组。例如,如果批量操作列表包含 2000 个插入操作,则 MongoDB 会创建 2 个组,每个组有 1000 个操作。

所以主要是你实际上并没有在一段时间内实际执行 600000 操作,但 mongoDB 正在负责拆分这些操作......

【讨论】:

以上是关于您可以在 PyMongo 中更新的文档数量是不是有上限?的主要内容,如果未能解决你的问题,请参考以下文章

pymongo 是不是支持 json 模式验证?

如何使用 python mongodb 客户端库(pymongo)更新 mongodb 集合中所有文档的字段“类型”

pymongo 用它的子字符串值更新字段集合中的所有文档

检查 pymongo 中是不是存在文档

如何在 pymongo 中获取有序字典?

pymongo实战