3

私はデータベースにかなり慣れていないので、Ubuntu 12.04 の python2.7 で MongoDB を使用する方法を理解しました。私が書いているアプリケーションは、データベースに接続する (メイン モジュールにインポートされた) 複数の python モジュールを使用します。基本的に、各モジュールは DB への接続を開くことから始まります。この接続はその後、さまざまな操作に使用されます。

ただし、プログラムが終了すると、メイン モジュールだけが終了を「認識」し、MongoDB への接続を閉じます。他のモジュールはこれを認識せず、接続を閉じる機会がありません。私はデータベースの経験がほとんどないので、終了時に接続を開いたままにしておくことに問題があるのではないかと思います。

するべきか:

  • このまま放置?

  • 代わりに、各操作の前に接続を開き、操作の後に閉じますか?

  • アプリケーション構造を完全に変更しますか?

  • これを別の方法で解決しますか?

4

1 に答える 1

3

異なるモジュール間で 1 つの pymongo 接続を使用できます。別のモジュールで開いて、必要に応じて他のモジュールにインポートできます。プログラムの作業が終了したら、プログラムを閉じることができます。これが最良の選択肢になります。

その他の質問について:

  1. このように離れることができます (スクリプトの実行が終了すると、すべての接続が閉じられます) が、閉じられていないものを残すのは悪い形式です。
  2. 操作ごとに接続を開いたり閉じたりできます (ただし、接続の確立には時間がかかります。
  3. それが私があなたにアドバイスすることです(この回答の最初の段落を参照してください)
  4. この点は③と合体できると思います。
于 2012-08-16T14:32:08.297 に答える