目標:ローカルMongoDBデータをMongobd Atlas Clusterに移行する。
試す:
1。ローカルデータをJSONとしてエクスポートします。
2。 JSONをクラスタにインポートします。
OS:LinuxMint 19.1シナモン
[。] Mongo - Version Mongodbシェルバージョンv4.0.10
[。] mongod --version dbバージョンv3.6.3
[。]私は別のデータベースフォルダを持っています。
だから最初に私が始めました
/home/me/mongodb/bin/mongod --dbpath=/home/me/mongodb-data
_
それから私はターミナルを開いて入力しました
~/mongodb/bin $ mongoexport --db task-manager --collection users --out ~/Desktop/test.json
_
Task-Managerデータベースからのユーザーコレクションがtest.jsonファイルとして印刷されますが、エラーが発生しています。
2019-06-18T22:05:06.108+0200 connected to: localhost
2019-06-18T22:05:06.108+0200 Failed: Failed to parse: { find: "users", filter: {}, sort: {}, skip: 0, snapshot: true, $readPreference: { mode: "secondaryPreferred" }, $db: "task-manager" }. Unrecognized field 'snapshot'.
_
何が問題なのか、それを修正するために何をすべきか?データを移行するためのより良い方法はありますか?
だから私はMongoDBすべてをアンインストールし、彼らのウェブサイトからサーバー、シェル、そしてツールのDEBをダウンロードし、Ubuntu 18.04のための4.0.10すべてであることを確認しました。同じバージョンがシナプスに含まれているようですが、私は以前にコマンドラインのインストールを行ったように、そしてソフトウェアマネージャからも、異なるバージョンを持つソフトウェアマネージャからもDEBを直接インストールすることにしました。バージョンが正しく、私はついに私が望んでいるようにJSONファイルを出力することができます。 @Sachavが言及されているように、MongoDumpとMongorestoreメソッドも試すでしょう。