我正在尝试使用pymongo将记录保存到mongo db中。我有脚本更新集合,如果它存在或插入一条记录。这个片段在交互式运行时可以工作,但是当我尝试从docker中执行相同的操作时,脚本失败并出现错误- Collection'对象不可调用。如果你想在一个'Collection'对象上调用'update'方法,它会失败,因为没有这样的方法存在。
def store_failed_cbsd(id,data,collection_name,mongo_client):
output_content = {'_id' : id,'data' : [data]}
key = {'_id': id}
mongo_client.get_database()[collection_name].update(key,
output_content, upsert=True)
PyMongo Version - 4.1.1我错过了什么?
update()
在pymongo 4中已弃用。使用update_many()
或update_one()
代替。
https://pymongo.readthedocs.io/en/stable/migrate-to-pymongo4.html collection-update-is-removed