【发布时间】:2013-03-07 18:41:52
【问题描述】:
我已经习惯在 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)
【问题讨论】:
标签: python mongodb eval pymongo setattr