я был использован, чтобы сделать это в PyMongo как средство доступа к конкретной базе данных:Установите базу данных mongo в pymongo без eval(). Может быть, setattr()?
import pymongo
connection = pymongo.MongoClient()
db = connection.DBNAME
затем db.collectioname.find-опрос() и т.д. Тем не менее, теперь я хочу, чтобы иметь возможность подключения к базам данных, именуемым через переменную, с глазу на цикл по ряду баз данных. Так что-то вроде:
dbname = 'DBNAME'
connection = pymongo.MongoClient()
db = eval('connection.' + dbname)
Я учил, что Eval() является иногда дьявол и его следует избегать. Как я могу сделать это с помощью setattr() или другого решения? Что-то вроде ...
dbname = 'DBNAME'
connection = pymongo.MongoClient()
db = setattr(connection, '??name??', dbname)
Да, спасибо, это очень полезно. Я не был уверен, что знаю, что имя базы данных было надлежащим атрибутом. Когда я набрал 'dir (connection)', я этого не видел! – Mittenchops