将数据导入openshift mongoDb

时间:2012-03-18 21:03:23

标签: mongodb openshift

我使用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论坛上找到this,但我不知道这个tmp目录是什么以及如何使用它。 我在windows上工作,所以我使用Cygwin作为shell替代品。

感谢您的帮助

6 个答案:

答案 0 :(得分:8)

tmp目录是/tmp的简写。在Linux上,它是一个在重新启动计算机时被清除的目录,因此它是临时文件的好地方。

所以,你可以这样做:

$ rsync data.csv openshiftUsername@openshiftHostname:/tmp
$ ssh openshiftUsername@openshiftHostname
$ mongoimport -d dbName -c collectionName --type csv /tmp/data.csv --headerline

答案 1 :(得分: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

答案 2 :(得分:3)

使用Openshift时,必须使用环境变量来确保您的值始终正确。点击此处阅读有关Openshift Envrionment variables

的更多信息

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文件,然后再将mongomport转换为json文件。

答案 3 :(得分:1)

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

答案 4 :(得分: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

答案 5 :(得分:0)

与Simon的答案类似,但这是我将.json导入数据库的方式:

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