2013-03-28 292 views
10

当试图导入或命令行(MongoDB的)出口:对于防爆​​:MongoDB的导入和导出为CSV

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

我得到“JavaScript执行失败:语法错误:意外的标识”的错误?

这里有什么问题?

+0

你的CSV文件的几行看起来像什么? – WiredPrairie 2013-03-28 10:43:02

+0

“denis”,“omeri”,“21”,“Tirana”,“1”,“http:/google.com”,“m” “olgert”,“llojko”,“20”,“Prrenjas”, “2”,“http:/facebook.com”,“m” – 2013-03-28 10:50:06

+0

如果你只是尝试这些行,它的工作?你碰巧试试这个建议:http://stackoverflow.com/questions/4686500/how-to-use-mongoimport-to-import-csv – WiredPrairie 2013-03-28 10:56:30

回答

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 =>斌=>,然后执行命令,而无需输入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 
+2

不知道为什么这是被拒绝的。好一个! – ebbflowgo 2013-04-09 18:47:31

+1

感谢分享。这帮助了像我这样的新人。 – Julian 2013-05-18 04:39:19

+1

完美!它帮助了我。 – 2014-04-07 07:28:33

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 CSV文件由于某些原因的工作,但在命令行指定字段的选项工程,以及。您还可以使用fieldFile命令行选项,使用仅包含字段名称的文件)

+0

Thnx寻求帮助。 我不明白这里有什么问题,我做了和你一样的事情,而且我仍然在“JavaScript执行失败:SyntaxError:意外的标识符” – 2013-03-30 09:37:12

+1

相同的确切字段,数据如图所示,命令行don'工作?什么版本的MongoDb? – WiredPrairie 2013-03-30 11:42:36

+0

这是另一个问题,我已将它发布在下面的评论中。 我执行错了。 非常感谢您的帮助... – 2013-03-30 11:46:11

0

大厦关闭丹尼斯Omeri的回答,我也有类似的问题,试图让一个mongolab MongoDB中的远程连接通过CLI实例。我不得不从MongoDB的bin文件夹运行命令,但它并不像他的答案那样直截了当。

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

然后,找到以下项目:

  • mongolab URL(应该是这样的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安装区域。这些都没有真正记载在任何我能找到的地方,所以我加入这个答案来帮助下一个陷入这个混乱的灵魂。