3

私はmongoDBとpymongoに不慣れで、データベースをディスクから/にロードして保存する方法を学ぼうとしています。 .org/python/current/tutorial.htmlですが、データベースの保存と読み込みに関する有用な情報が見つかりませんでした。

次のようなデータベースを作成するとします。

import pymongo
mongo = pymongo.Connection()
db = mongo['my_db']
col = db['my_col']
col.insert({'name': 'Adam','occupation': 'student'})
col.insert({'name': 'John','occupation': 'officer'})
#how can we save the database to disk after this point 
#and later read it from another program?
4

2 に答える 2

9

MongoDB ファイルは移植可能であり、探しているものを実現する方法がいくつかあります。

  • のデータ ディレクトリmongodを別のコンピュータにコピーします。通常、このディレクトリは に基づいてい/data/db/mongodbます。他のコンピュータでは、リモート ディレクトリをコピーしたディレクトリに置き換え、リモートを再起動するだけmongodで、システムにデータが保存されます。私の知る限り、MongoDB にはホット スワップ機能がなく、ダウンタイムなしでオンデマンドでディレクトリを切り替えることができます。

  • データのホット バックアップを作成し、MongoDB のエクスポートおよびインポート機能を使用して、リモート マシンに配置するデータのサブセットを選択します。mongodumpおよびを介してホット バックアップを実行しmongorestoreます。ここで一般的なドキュメントページを見つけることができます: http://docs.mongodb.org/manual/administration/backups/#using-binary-database-dumps-for-backups

  • データの CSV/JSON エクスポートを作成し、リモート コンピューターにインポートします。これは、この特定のシナリオでのバイナリ バックアップによく似ていますが、エンド パーティなどにとってより読みやすい点も異なります。また、この方法は挿入のみであり、(PHP のようなもので) クライアント側で反復するバッチ挿入と同じであることに注意する必要があります。 CSV を作成し、MongoDB サーバーでバッチ挿入を呼び出します。mongoexportand mongoimport(これを実行するプログラム) の詳細については、http: //docs.mongodb.org/manual/administration/import-export/を参照してください。

また、データのバックアップと移動、および外部マシンへの復元に関する優れた一般情報も、http: //docs.mongodb.org/manual/administration/backups/で見つけることができます。

于 2012-12-21T11:26:51.577 に答える
2
  • pymongo を使用して mongodb に新しいエントリを挿入するには、これで十分です。つまり、これを行う

    col.insert({'name': 'John','occupation': 'officer'})

これらのエントリはコレクションに自動的に保存されます。次のように pymongo を使用してエントリを変更することもできます。

col.update({'name': 'Adam'},{'$set':{'occupation': 'officer'}})

また、最後に接続を閉じることをお勧めします。

mongo.close()
于 2012-12-21T12:14:54.687 に答える