2017-06-12 40 views
0

我有幾十個我的同事給JSON文件,他們是逗號分隔的文件,像下面這樣:如何將逗號分隔的JSON文檔導入到Mongodb中?

{ 
    "_id" : ObjectId("566a8d08b9ac7b7dc2ddb90a"), 
    "login_ip" : "180.173.143.x", 
    "login_time" : NumberLong("1478757697373"), 
    "logout_time" : NumberLong("1478757878035"), 
    "role" : NumberInt("5"), 
    "server_ip" : "115.28.94.x", 
    "thirdPartyId" : NumberInt("-1"), 
    "ver" : NumberInt("1036") 
}, 
{ 
    "_id" : ObjectId("566a8d0db9ac7b7dc2ddb90b"), 
    "login_ip" : "116.226.162.x", 
    "login_time" : NumberLong("1456103011531"), 
    "logout_time" : NumberLong("1456111567354"), 
    "role" : NumberInt("10002"), 
    "server_ip" : "115.28.94.x", 
    "thirdPartyId" : NumberInt("6"), 
    "ver" : NumberInt("1056") 
}, 
... 

我試圖將其導入到我本地的MongoDB與mongoimport的工具,但它有麻煩找到第二個文檔的起始位置,抱怨這些文件的語法,儘管事實上第一個文檔被分析到數據庫中。

+ mongoimport.exe --db eques --collection users_2017_04_25 --type json --bypassDocumentValidation --file 'E:\sample\mongdo/users_2017_04_25.json' 
2017-06-12T14:01:32.029+0800 connected to: localhost 
2017-06-12T14:01:32.040+0800 Failed: error processing document #2: invalid character ',' looking for beginning of value 
2017-06-12T14:01:32.040+0800 imported 0 documents 

PS:有很多文件需要導入,請不要建議我把它們變成JSON數組。

請幫忙。

+0

嗯,他們已經是JSON文件。 –

+0

@NeilLunn所以呢?請建議我! –

+0

他們看起來像你上面顯示的「完全」嗎?如果是這樣,那麼這是無效的JSON。它看起來像有人用mongodb外殼輸出輸出,這當然是在這裏做的錯誤的事情。因此,這需要一些預處理來實際使它們工作。鑑於可能的來源,是否有任何方法可以重新編寫出口?這將是最簡單的過程。 –

回答

0

上面的JSON文檔在BSON中大部分表示mongoimport工具不明白。

您應該首先以標準JSON格式導出數據(在Mongo世界中,它的名稱爲Strict mode),然後將其提供給mongoimport工具。