5

mongoDbカートリッジを使用してopenshiftでJavaアプリケーションを作成しました。私のアプリケーションは、jbossAS7とopenshiftの両方でローカルに正常に実行されます。ここまでは順調ですね。ここで、オープンシフトクラウドのmongoDbにcsvをインポートしたいと思います。コマンドはかなり単純です:

mongoimport -d dbName -c collectionName --type csv data.csv --headerline

これはローカルで正常に機能し、openshift-shellとリモートmongo-dbに接続する方法を知っています。しかし、私の質問は、このコマンドをsshシェルで実行するときに、ローカルに保存されたファイル(data.csv)をどのように使用できるかということです。

これはopenshiftフォーラムで見つけましたが、このtmpディレクトリが何であるかとその使用方法がよくわかりません。私はWindowsで作業しているので、Cygwinをシェルの代替として使用します。

助けてくれてありがとう

4

6 に答える 6

8

tmp ディレクトリは/tmp. Linux では、コンピューターを再起動するたびに消去されるディレクトリであるため、一時ファイルに適した場所です。

したがって、次のようなことができます。

$ rsync data.csv openshiftUsername@openshiftHostname:/tmp
$ ssh openshiftUsername@openshiftHostname
$ mongoimport -d dbName -c collectionName --type csv /tmp/data.csv --headerline
于 2012-03-19T15:08:48.430 に答える
3

Openshift を使用する場合は、環境変数を使用して、値が常に正しいことを確認する必要があります。Openshift 環境変数の詳細については、ここをクリックしてください

openshift サーバーに SSH で接続してから実行します(コマンドの太字部分を値に合わせて変更することを忘れないでください)

mongoimport --headerline --type csv \
    --host $OPENSHIFT_NOSQL_DB_HOST \
    --port $OPENSHIFT_NOSQL_DB_PORT \
    --db **your db name** \
    --collection **your collection name** \
    --username $OPENSHIFT_NOSQL_DB_USERNAME \
    --password $OPENSHIFT_NOSQL_DB_PASSWORD \
    --file ~/**your app name**/data/**your csv file name**

注意 mongoimport を使用して csv ファイルをインポートする場合、データは文字列と数値のみとして保存されます。配列やオブジェクトは保存されません。保存する配列またはオブジェクトがある場合は、最初に csv ファイルを適切な json ファイルに変換してから、json ファイルを mongoimport する必要があります。

于 2012-07-14T16:33:53.680 に答える
1

mongodb を管理するために、openshift インスタンスにRockMongoをインストールしました。これは、mysql の phpMyAdmin に少し似た、優れたユーザー インターフェイスです。

于 2012-03-19T21:18:38.363 に答える