我正在使用一些看起来像这样的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的内容。
然而,它适用于所有文件。我很想知道我误解了什么。
提前致谢。
答案 0 :(得分:0)
正如文档here中所述:
每组操作最多可以有1000次操作。如果一个组超过此限制,MongoDB会将该组划分为1000或更少的较小组。例如,如果批量操作列表包含2000个插入操作,MongoDB将创建2个组,每个组有1000个操作。
所以主要是你实际上并没有在一段时间内执行600000操作,但是mongoDB负责拆分这些操作......