我已经习惯在 pymongo 中这样做作为访问特定数据库的一种方式:
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)