pymongo 中不推荐使用 save 吗?

Dim*_*ims 5 mongodb pymongo deprecation-warning

我正在使用 pymongo 读取 MongoDB 集合中的文档,然后修改它们,然后使用save将它们保存回来。

不幸的是我开始收到弃用警告:

DeprecationWarning: save is deprecated. Use insert_one or replace_one instead
Run Code Online (Sandbox Code Playgroud)

推荐的替代品具有不同的功能:insert_one抱怨重复_idupdate_one需要过滤器参数。

如何禁用弃用警告?

A. *_*vis 2

如果您读取文档并对其进行修改,然后用修改后的副本替换服务器上的文档,那么您应该使用replace_one

doc = collection.find_one()
doc['key'] = value
collection.replace_one({'_id': doc['_id']}, doc)
Run Code Online (Sandbox Code Playgroud)

但是,如果您的目的是更新文档中的特定字段,则update_one速度更快(它需要到服务器一次而不是两次)并且更安全(如果多个进程正在更新文档,则不容易出现相同的竞争条件)同一个文件)。