我试图遍历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删除集合,该集合将集合的名称作为参数,或者是否有办法解析集合'以便口译员意识到它是一个变量?
答案 0 :(得分:0)
在循环块中,collection
名称绑定到str
对象。
字典样式索引在此处用于访问具有collection
名称的集合。 e.g。
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()
或者,使用get_collection
实例的pymongo.database.Database
方法。
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()