0
我一直習慣在pymongo這樣的訪問特定數據庫的手段:在沒有eval()的情況下在pymongo中設置mongo數據庫。也許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(連接)'時,我沒有看到它! – Mittenchops 2013-03-07 20:51:35