pymongo在连接字符串中指定变量

时间:2012-07-28 03:32:44

标签: python mongodb pymongo

我正在使用pymongo连接到我的mongodb数据库。我试图在连接字符串中调用数据库名称和集合名称,但我无法弄明白。

如果我有数据库名称(mydb)和名为(mycol)的集合,则此示例有效:

con = Connection('mymongodbhost')
d = con.mydb.mycol.find_one()
print (d)

这样可以正常但我可以说我将mydb和mycol定义为变量,如何在连接字符串中调用它们。所以我要说:

db = parser.get('some_conf_file', 'db_name')
col = parser.get('some_conf_file', 'col_name')

如何在连接字符串中指定db和col变量(只是代码snippit工作)?我尝试了各种各样的组合,这当然不起作用:

d = con.db.col.find_one()
print (d)

这基本上是调用db(db)和集合(col)。但我想在上面的例子中用db和col替换变量值。

感谢。

2 个答案:

答案 0 :(得分:6)

试试这个:

d = con[db][col].find_one()

答案 1 :(得分:0)

您可以使用:

d = getattr(getattr(con, db), col).find_one()

虽然它看起来有点不雅。