1

mongodb データベースに接続するために pymongo を使用しています。接続文字列でデータベース名とコレクション名を呼び出そうとしていますが、わかりません。

データベース名 (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 変数 (単なるコード スニピットで機能します) を指定するにはどうすればよいですか? 私はあらゆる種類の組み合わせを試しましたが、これは確かにうまくいきません:

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

これは基本的に、db (db) とコレクション (col) を呼び出しています。しかし、上記の例では、変数の値を db と col に置き換えたいと思います。

ありがとう。

4

2 に答える 2

7

これを試して:

d = con[db][col].find_one()
于 2012-07-28T03:42:14.310 に答える
0

あなたが使用することができます:

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

それは少しエレガントに見えますが。

于 2012-07-28T03:39:08.280 に答える