比較的小さなjsonデータ(> 5MB)に基づいてテーブルを表示する単純なWebサイトを作成しようとしています。 jsonをMongoDBにインポートし、ドライバー(MongooseまたはPyMongo)を使用してクエリを実行する予定です。データのサイズが非常に小さいので、クラウドサービスの使用は避けて、サーバーの費用のみを支払うようにします。
ローカルマシンでmongoimport
を試してみました。ローカルでデータをインポートすることに成功しましたが、これをリモートサーバーで実行したいと思います。
リモートサーバーでこれをどのように行いますか?私が理解しているように、mongod
は、mongo
またはmongoimport
を開始するためにバックグラウンドで実行する必要があります。これを1つのウィンドウでどのように実現しますか?このタイプの仕事をするのに役立つと思うガイドはありますか?
データサイズが小さいので、 MongoDB Atlas を使用することをお勧めします。クラスターを作成し、クラスター内にあるURIを使用してmongoimportを実行します(接続->アプリケーションの接続->接続文字列のみ)。
Mongoimportに
mongoimport --uri "URI" --drop --collection collectionName --file localFileLocation
指定する必要がある場所:1) "URI" 2)collectionName 3)localFileLocation。
Mongoimportが機能すると、接続文字列を取得した後、Mongo Shellを介してクラウドデータをクエリできます(接続-> Mongo Shellで接続->接続文字列のみ)
mongo "connectionString" --username yourUsername
指定する必要がある場所:1) "connectionString" 2)yourUsername。
ここで、作成したクラスターに関連付けられているパスワードを入力すると、接続され、コマンドラインからMongo Atlasに保持されているデータをクエリできるようになります。
csvファイルをローカルマシンからリモートサーバーにインポートするには:
mongoimport --Host "hostname" --port "port" --db "databasename" --collection "collectionName" --file "filePath" --type csv --headerline
jsonファイルのインポート用
mongoimport --Host "hostname" --port "port" --db "databasename" --collection "collectionName" --file "filePath"
--Host
デフォルトでホスト名(リモートサーバーのアドレス)を指定します。デフォルトはlocalhostです。
--port
リモートサーバーでmongoサーバーが実行されているポートをデフォルトで27017に指定します。
--file
インポートするデータを含むファイルの場所と名前を指定します。
シェルから公式のmongoimport
コマンドを直接使用できます。
完全な例の下に:
mongoimport -h localhost:27018 -d developer-database -c developer-collection -u root -p root --authenticationDatabase admin --file data-local.json
Jsonにarrayが含まれている場合は、オプション--jsonArray
を追加できます。
ファイルがjsonではなくcsvの場合は、オプション--type csv
を追加できます。
詳細: https://docs.mongodb.com/manual/reference/program/mongoimport/#bin.mongoimport