2017-06-17 25 views
1

我運行了一個mongo導入命令來導入我的json文件,但所有數據都保存在單個對象下。Mongo導入將所有數據保存在單個對象下

mongoimport -d DB NAME -c COLLECTION NAME --type json --file FILE PATH --host MY MONGO LAB HOST --port 27892 -u MYUSER -p MYPASSWORD 

但現在當我看到mongorobot分貝

JSON

{ 
"-Kbr7KouYOL_a9NIAyPV" : { 
"correctas" : [ 1 ], 
"creator_name" : "kk", 
"game_name" : "Elrubius", 
"jugado" : 62, 
"opciones1" : [ "Por usar una pistola falsa" ], 
"opciones2" : [ "Por matar" ], 
"opciones3" : [ "Por robar" ], 
"opciones4" : [ "Por estar tomando alcol" ], 
"preguntas" : [ "Elrubius porque fue detenido" ], 
"premium" : false 
}, 
"-Kbr8RJMSCv95m6TS4Of" : { 
"correctas" : [ 2 ], 
"creator_name" : "CRIATURITA", 
"game_name" : "ELRUBIOSOMG", 
"jugado" : 34, 
"opciones1" : [ "Carlos" ], 
"opciones2" : [ "Ruben" ], 
"opciones3" : [ "Jorge" ], 
"opciones4" : [ "Chavez" ], 
"preguntas" : [ "Como se llama elrubiusomg?" ], 
"premium" : false 
}, 
  • 是錯誤的所有數據存儲在單個對象下?
  • 我該如何避免這種情況?

感謝

+0

你是指我正在導入的json文件嗎?我已經添加了它(; –

回答

1

的問題是,你的文件合併成一個單一的文件。

你的格式(縮進)隱藏你正在做的事情。但是...這是你使用的是什麼,在你的問題(有一些屬性簡潔,刪除):

{ 
    "-Kbr7KouYOL_a9NIAyPV": { 
     "creator_name": "kk", 
     "game_name": "Elrubius", 
     "jugado": 62, 
     "premium": false 
    }, 
    "-Kbr8RJMSCv95m6TS4Of": { 
     "creator_name": "CRIATURITA", 
     "game_name": "ELRUBIOSOMG", 
     "jugado": 34, 
     "premium": false 
    } 
} 

這只是要給你有很多的子文檔的一個巨大的文件。最終,您將超出單個文檔的大小。

此外,您構建了您的JSON的方式,它爲每個文檔創建唯一屬性名稱:

  • -Kbr7KouYOL_a9NIAyPV
  • -Kbr8RJMSCv95m6TS4Of

我懷疑這是你的意圖;你將永遠無法查詢,因爲每個文檔都有一個唯一的屬性名稱。

您需要修復您的JSON以表示幾個單獨的文檔。並修復這個唯一的ID,因此它是可查詢的。例如:

{ 
    "id": "-Kbr7KouYOL_a9NIAyPV", 
    "creator_name": "kk", 
    "game_name": "Elrubius", 
    "jugado": 62, 
    "premium": false 
} 
{ 
    "id": "-Kbr8RJMSCv95m6TS4Of", 
    "creator_name": "CRIATURITA", 
    "game_name": "ELRUBIOSOMG", 
    "jugado": 34, 
    "premium": false 
} 

然後,您可以導入這組文檔。

請注意,在我的示例中,我添加了一個id屬性。如果您沒有指定MongoDB,則創建一個唯一的_id屬性。因此,如果您想要覆蓋MongoDB的保證唯一屬性,則可以在上例中將id替換爲_id

+0

我知道它有點晚,但是當我嘗試使用類似它的語法進行導入時,它會拋出我失敗的錯誤處理文檔#1無效字符{查找對象鍵字符串的開頭 –

+0

不確定正是爲什麼你有這個問題,但你也可以嘗試將所有文​​檔放在括號內的導入文件中:'[{doc1},{doc2} ...]'只需要注意:我只是將我的確切文檔示例回答並通過mongoimport導入,沒有問題。 –

+0

我在命令中輸入了錯誤的文件,感謝您的快速回復 –

相關問題