Mongodb导入和导出到csv

时间:2013-03-28 10:26:25

标签: mongodb

尝试从命令行导入或导出(MongoDB)时:对于Ex:

> mongoimport --db denistest --collection things --type csv --file C:/Users/Administrator/Desktop/csv_data.csv

我得到" JavaScript执行失败:SyntaxError:意外的标识符"错误?

这里有什么问题?

3 个答案:

答案 0 :(得分:27)

我终于找到了问题。我在mongo.exe中执行我的命令。 (我打开了C:\ mongodb \ bin> mongo并执行了我的命令)

C:\mongodb\bin>mongo
MongoDB shell version: 2.4.0
connecting to: test
>
> mongoimport --db denistestcsv --collection things --type csv --fields First,La
st,Visits,Location,Number,Url,Letter --file E:\temp\csv1.csv

但这是错误的。正确的方法是mongo => bin =>然后执行命令而不输入mongo.exe

C:\mongodb\bin>mongoimport --db denistestcsv --collection things --type csv --fi
elds First,Last,Visits,Location,Number,Url,Letter --file E:\temp\csv1.csv

答案 1 :(得分:1)

使用您的示例数据,保存到名为csv1.csv的文件中:

"denis","omeri","21","Tirana","1","http:/google.com","m" 
"olgert","llojko","20","Prrenjas","2","http:/facebook.com","m"

我运行了以下命令行(这里为了可读性而拆分,带有虚构的字段名称):

mongoimport --db test 
    --collection things 
    --type csv 
    --fields First,Last,Visits,Location,Number,Url,Letter 
    --file d:\temp\csv1.csv

它成功导入:

connected to: 127.0.0.1
Thu Mar 28 07:43:53.902 imported 2 objects

things DB中:

> db.things.find()
{ "_id" : ObjectId("51543b09d39aaa258e7c12ee"), 
     "First" : "denis", "Last" : "omeri", "Visits" : 21, 
     "Location" : "Tirana", 
     "Number" : 1, "Url" : "http:/google.com", "Letter" : "m" }
{ "_id" : ObjectId("51543b09d39aaa258e7c12ef"), 
     "First" : "olgert", "Last" : "llojko", "Visits" : 20, 
     "Location" : "Prrenjas", 
     "Number" : 2, "Url" : "http:/facebook.com", "Letter" : "m" }

(由于某种原因,我无法在2.4文件中使用标题行选项,但是在命令行中指定字段的选项也可以。您还可以使用仅包含该字段的文件使用fieldFile命令行选项)

的名称

答案 2 :(得分:0)

基于Dennis Omeri的回答,我遇到类似的问题,试图通过CLI与mongolab MongoDB实例建立远程连接。我也必须从MongoDB的bin文件夹中运行该命令,但它并不像他的回答那样直截了当。

在我的情况下,我通过OSX上的自制软件安装了mongodbbrew install mongodb,假设您安装了自制软件)。这把我的mongo系统文件放在:/usr/local/cellar/mongodb/3.0.3/bin(你的mongo版本中的sub,路径应该是好的)。

然后,找到以下项目:

  • mongolab网址(应该像ds123456-a.mongolab.com)
  • 端口号(可能是27799或2 ####)
  • 数据库用户(您必须在mongolab中进行设置)
  • 数据库密码(也在mongolab中设置)

然后您可以使用以下字符串连接到mongolab mongo ds123456.mongolab.com:27799/dbname -u dbuser -p dbpassword

另请注意:在我的情况下,我通过Heroku插件设置了mongolab。这意味着您必须通过heroku仪表板进行身份验证才能访问您的mongolab db user / pw设置区域。这些都没有真正记录在我能找到的任何地方,所以我将这个答案添加到了帮助下一个徘徊在这个烂摊子里的灵魂。