5

我使用 mongoDb 墨盒在 openshift 上创建了一个 java 应用程序。我的应用程序运行良好,无论是在 jboss AS7 本地还是在 openshift 上。到现在为止还挺好。现在我想将一个 csv 导入到 openshift 云上的 mongoDb 中。该命令相当简单:

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

这在本地工作正常,我知道如何连接到 openshift-shell 和远程 mongo-db。但我的问题是:在 ssh-shell 中执行此突击队时,如何使用本地存储的文件 (data.csv)。

我在 openshift 论坛上找到了这个,但我真的不知道这个 tmp 目录是什么以及如何使用它。我在 Windows 上工作,所以我使用 Cygwin 作为 shell 替代品。

谢谢你的帮助

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 回答
4

这是我在 2014 年 10 月所需要的:

mongoimport --host $OPENSHIFT_MONGODB_DB_HOST --port $OPENSHIFT_MONGODB_DB_PORT -u admin -p 123456789 -d dbName -c users /tmp/db.json

请注意,我使用的是 json 文件而不是 csv

于 2014-10-07T10:43:30.167 回答
3

使用 Openshift 时,您必须使用环境变量来确保您的值始终正确。单击此处阅读有关Openshift 环境变量的更多信息

SSH 进入您的 openshift 服务器,然后运行(请记住更改命令中的粗体位以匹配您的值)

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 文件,然后 mongoimport json 文件。

于 2012-07-14T16:33:53.680 回答
1

我在我的 openshift 实例上安装了RockMongo来管理 mongodb。这是一个不错的用户界面,有点像 mysql 的 phpMyAdmin

于 2012-03-19T21:18:38.363 回答
1

希望使用mongorestore以下内容的用户为我工作:

首先使用 scp 将转储复制到 openshift 上的数据目录:

scp yourfile.bson yourhex@yourappname.rhcloud.com:app-root/data

rhc ssh 到您的应用程序和 cd 到app-root/data文件夹。

mongorestore --host $OPENSHIFT_MONGODB_DB_HOST 
--port $OPENSHIFT_MONGODB_DB_PORT 
--username $OPENSHIFT_MONGODB_DB_USERNAME 
--password $OPENSHIFT_MONGODB_DB_PASSWORD 
-d yourdb 
-c yourcollection 
yourfilename.bson --drop
于 2015-07-24T22:47:35.267 回答
0

与西蒙的回答类似,但这是我导入.json数据库的方式:

mongoimport --host $OPENSHIFT_MONGODB_DB_HOST -u admin -p 123456 --db dbname --collection grades < grades.json

于 2015-08-17T21:10:58.843 回答