2017-01-12 9 views
0
conn_pf = pymongo.Connection(ip,27023,slaveOk=True) 

上記では、conn_pf.close()を使用してセッションを閉じることができます。pymongoセッションを閉じる必要がありますか?

しかし:

conn_pfname = pymongo.Connection(ip,27023,slaveOk=True).__getattr__(resource+"_pfname").__getattr__("data") 

は私がconn_pfname.closeを使用して閉鎖することはできません。それは、コレクション型には近いメソッドがないと言います。私は本当に2回目のセッションでセッションを開いたのですか?

答えて

1

いいえ、PyMongo接続を閉じる必要はありません。 PyMongoの接続プーリングあなたが最も効率的なパフォーマンスを与えるように、それらを開いたままにします:

http://api.mongodb.com/python/current/faq.html#how-does-connection-pooling-work-in-pymongo

また、「接続」と「slave_ok」のような古いAPIがPyMongo年前から削除された、最新のバージョンにアップグレードしてください最も正確で効率的なドライバーのために。使用MongoClient:

http://api.mongodb.com/python/current/tutorial.html

+0

私の関心は、私が(200のような)複数の接続を開いて、それらを閉じていない場合は、それが開くように(私のマシンよりも重要である)別の生産機械のために難しいかもしれない、あります私のスクリプトを通して開いた非常に多くのアイドル状態の接続のために、mongoのセッション。私は正しい? –

+0

1つのMongoClientを作成し、プログラムの間だけ使用します。あなたのプログラムがマルチスレッドでない場合、MongoClientはMongoDBへの2つの接続を開きます。接続プールのFAQをご覧ください:http://api.mongodb.com/python/current/faq.html#how-does-connection-pooling-work-in-pymongo –

関連する問題