mongodb2.4とmongodb2.6の間のmongorestoreの問題

すべての人に良い一日を!



最近、gentooで世界を再構築したため、mongoDBが更新されました。 コンソールを起動し、通常のmongodump



およびmongorestore



。 アプリケーションを開くと、コレクションの一部が存在しないというエラーが多数表示されます。 mongodump



mongorestore



を再起動し、コレクションリストをチェックして、50個のコレクションのうち30個のみが存在することを確認しました。



私は理解し始め、問題は次のようであるという結論に達しました:mongodb2.4はサーバーにインストールされ、mongodb2.6は私にインストールされています。 私の最初の考えは、バージョン2.4でmongoをすばやく再構築し、人生を楽しむことでした。 彼らが言うように、これはコーシャではありません。 Googleに助けを求めましたが、mongo2.6ではコレクション作成チームの作業のロジックが変更されたことがわかりました。 現在、「size = null」と「max = null」は使用できません。 しかし、この問題の解決策は提供されていません。



そして今日、Habrauser kuzmaのプロンプトのおかげで、解決策が見つかりました。 すべてが判明し、獲得しました。 したがって、私はそれをすべての人と共有することにしました。おそらく他の誰かに役立つでしょう。



how-it-will-be-be-be-called-locallyデータベース(以下を参照)がまだ存在しない場合は、次のコマンドを実行します。



 mongo --eval "db.copyDatabase('remote-db-name','how-it-will-be-called-locally','server-address','user','password')"
      
      







データベースが既に存在する場合は、作成する前に削除する必要があります。



 mongo how-it-will-be-called-locally --eval "db.dropDatabase(); db.copyDatabase('remote-db-name','how-it-will-be-called-locally', 'server-address','user','password')"
      
      







上記のコードは、リモートデータベースdb-nameをコピーし、how-it-will-be-called-locallyという名前でローカルにコピーを作成します



以上です。



All Articles