📅  最后修改于: 2023-12-03 14:49:45.306000             🧑  作者: Mango
在 MongoDB 中,如果需要更新集合中的所有文档,可以使用 PyMongo 提供的 update_many() 方法。该方法接受两个参数:第一个参数是过滤条件,第二个参数是更新操作。
例如,如果需要将集合中所有 age 大于等于 18 的文档中的 gender 字段更新为 'male',可以执行以下代码:
import pymongo
client = pymongo.MongoClient('mongodb://localhost:27017/')
db = client['test_db']
collection = db['test_collection']
update_result = collection.update_many(
{'age': {'$gte': 18}},
{'$set': {'gender': 'male'}}
)
print(f'{update_result.modified_count} documents updated.')
输出结果为:
2 documents updated.
上述代码中,$gte 表示大于等于。$set 是 MongoDB 中的更新操作符,表示将字段设置为指定的值。
需要注意的是,如果需要更新所有文档,则第一个参数应为空字典。例如:
update_result = collection.update_many(
{},
{'$set': {'gender': 'male'}}
)
表示将集合中所有文档中的 gender 字段更新为 'male'。
需要注意的是,update_many() 方法返回一个 UpdateResult 对象,其中包含了更新操作的结果。UpdateResult 对象可以使用 modified_count、matched_count 等方法获取更新的文档数量。
更多关于 PyMongo 的使用方法,可以参考 官方文档。