2013-03-28 123 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安裝區域。這些都沒有真正記載在任何我能找到的地方,所以我加入這個答案來幫助下一個陷入這個混亂的靈魂。