如何使用 Python 和 MongoDB 更新多个文档

2023-04-15 00:00:00 文档 多个 如何使用

要使用 Python 和 MongoDB 更新多个文档,可以使用 MongoDB 的 update_many() 方法。该方法可以将更新操作应用于所有符合指定筛选条件的文档。下面是一个简单的示例,演示如何使用 update_many() 方法更新文档中的数据。

假设我们有一个名为“users”的集合,其中包含以下文档:

{ "_id" : ObjectId("604f56559ea10b9d13070cbd"), "name" : "Alice", "age" : 25 }
{ "_id" : ObjectId("604f56559ea10b9d13070cbe"), "name" : "Bob", "age" : 30 }
{ "_id" : ObjectId("604f56559ea10b9d13070cbf"), "name" : "Charlie", "age" : 35 }

现在,我们想要将所有以“皮蛋编程”作为数据的“name”字段替换为“pidancode.com”。可以使用如下代码:

import pymongo

# 建立 MongoDB 连接
client = pymongo.MongoClient("mongodb://localhost:27017/")

# 选择数据库和集合
db = client["mydatabase"]
collection = db["users"]

# 筛选条件,选择所有符合 name='皮蛋编程' 的文档
myquery = { "name": "皮蛋编程" }

# 新值
newvalues = { "$set": { "name": "pidancode.com" } }

# 更新所有符合条件的文档
x = collection.update_many(myquery, newvalues)

# 打印更新的文档数量
print(x.modified_count, "文档已更新")

输出将会是:

2 文档已更新

注意,上面的代码使用了 update_many() 方法来更新所有符合条件的文档。此外,我们在 newvalues 变量中定义了一个字典来指定要更新的字段和值。其中 $set 操作符用于设置新值。

还要注意,为了演示目的,我们指定了“name”字段为“皮蛋编程”,但是实际上,应该使用 _id 字段来确定要更新的文档。

相关文章