【发布时间】:2021-05-21 05:37:45
【问题描述】:
我正在尝试使用 pymongo 编写一个数据迁移脚本
- 如果
{'_id': id, 'array.0':{'$exists':False} }匹配,则替换一个 - 如果具有给定
id的文档不存在,则插入一个,即不检查'array.0':{'$exists':False}
目前脚本是这样的
from pymongo import ReplaceOne
def replace_one(row, id):
return ReplaceOne({'_id': id, 'array.0':{'$exists':False} }, row, upsert=True)
这可能会导致重复键错误,因为upsert=True 会在查询不匹配且具有查询 ID 的文档已存在时尝试创建文档。但我只想在文档之前不存在的情况下创建文档。
另一个要求是我不想使用更新,因为当你有很多行时它会慢得多。
【问题讨论】:
标签: python mongodb pymongo database-migration