gpt4 book ai didi

python - 将 db.collection.drop() 中的 'collection' 解释为变量与设置数据库

转载 作者:行者123 更新时间:2023-12-01 09:33:48 24 4
gpt4 key购买 nike

我正在尝试迭代 MongoDB 3.4 数据库中的集合列表并执行更新和删除。我试图使代码将“集合”解释为字符串变量,但代码认为它是单个数据库:

for collection in db.collection_names():
if collection[-3:] == "_CS":
request = [UpdateMany({},{"$set": {"Collection": collection}})]
result = db.collection.bulk_write(request)

else:
db.collection.drop()

是否有另一种方法可以通过 Python/Pymongo 删除集合,该方法将集合的名称作为参数,或者是否有一种方法来解析“集合”以便解释器意识到它是一个变量?

最佳答案

在循环 block 中,collection 名称绑定(bind)到 str 对象。

字典样式索引在这里非常有用,可以使用 collection 名称访问集合。 例如

for collection in db.collection_names():
if collection[-3:] == "_CS":
request = [UpdateMany({},{"$set": {"Collection": collection}})]
result = db[collection].bulk_write(request)

else:
db[collection].drop()

或者,使用 pymongo.database.Database 实例的 get_collection 方法。

for collection in db.collection_names():
if collection[-3:] == "_CS":
request = [UpdateMany({},{"$set": {"Collection": collection}})]
result = db.get_collection(collection).bulk_write(request)

else:
db.get_collection(collection).drop()

关于python - 将 db.collection.drop() 中的 'collection' 解释为变量与设置数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49714006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com