web-dev-qa-db-ja.com

リモートサーバーでmongoimportする方法

比較的小さなjsonデータ(> 5MB)に基づいてテーブルを表示する単純なWebサイトを作成しようとしています。 jsonMongoDBにインポートし、ドライバー(MongooseまたはPyMongo)を使用してクエリを実行する予定です。データのサイズが非常に小さいので、クラウドサービスの使用は避けて、サーバーの費用のみを支払うようにします。

ローカルマシンでmongoimportを試してみました。ローカルでデータをインポートすることに成功しましたが、これをリモートサーバーで実行したいと思います。

リモートサーバーでこれをどのように行いますか?私が理解しているように、mongodは、mongoまたはmongoimportを開始するためにバックグラウンドで実行する必要があります。これを1つのウィンドウでどのように実現しますか?このタイプの仕事をするのに役立つと思うガイドはありますか?

5
chachacha

データサイズが小さいので、 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に保持されているデータをクエリできるようになります。

1
mysl

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

0
veben