2011-11-29 110 views
1

我在使用mongoimport時遇到過一些奇怪的行爲。它似乎跳過了JSON導入文件的第一行。我還沒有看到任何提及JSON頭文件,並插入一個空白的第一行仍然導致同樣的問題。mongoimport跳過第一行

我運行CentOS的,以及MongoImport和DB是2.0.0版本

我試圖導入數據包含日文字符。這有點長,但這是我嘗試導入的3條線。我希望在這裏發佈是可以的,以防數據本身存在導致錯誤的問題。

{ "NICT-ATR" : { "A" : { "adequacy" : 3, "fluency" : 4 }, "B" : { "adequacy" : 3, "fluency" : 3 }, "C" : { "adequacy" : 4, "fluency" : 2 }, "output" : "図12を參照して、本発明の第三実施例に説明説明次に、。" }, "NTT" : { "A" : { "adequacy" : 5, "fluency" : 5 }, "B" : { "adequacy" : 5, "fluency" : 5 }, "C" : { "adequacy" : 5, "fluency" : 5 }, "output" : "次に、 図 12 を參照して、 本発明の第 3 の実施例について説明する。" }, "_id" : { "$oid" : "4ed3428a7f7130fdf093a41d" }, "english" : "Next, explanation will be given on a third embodiment of the present invention, by referring to FIG. 12.", "id" : "20000523-155948-EMBODIMENTS-73", "kuro" : { "A" : { "adequacy" : 5, "fluency" : 5 }, "B" : { "adequacy" : 5, "fluency" : 5 }, "C" : { "adequacy" : 5, "fluency" : 5 }, "output" : "次に、本発明の第3の実施例について12図である參照して説明する。" }, "moses" : { "A" : { "adequacy" : 5, "fluency" : 5 }, "B" : { "adequacy" : 5, "fluency" : 5 }, "C" : { "adequacy" : 5, "fluency" : 5 }, "output" : "次に 、 図 12 を 參照 し て 、 本 発明 の 第 3 実施 例 について 説明 する 。 " }, "ref" : "次に、本発明の第3実施例を図12用いて説明する。", "tsbmt" : { "A" : { "adequacy" : 4, "fluency" : 4 }, "B" : { "adequacy" : 4, "fluency" : 3 }, "C" : { "adequacy" : 4, "fluency" : 4 }, "output" : "次に、説明は図12の參照から本発明の3番めの実施例上で與えられるだろう。" } } 
{ "NICT-ATR" : { "A" : { "adequacy" : 4, "fluency" : 5 }, "B" : { "adequacy" : 5, "fluency" : 4 }, "C" : { "adequacy" : 4, "fluency" : 3 }, "output" : "印字機構は、感光體ドラム11が設けられている。" }, "NTT" : { "A" : { "adequacy" : 5, "fluency" : 5 }, "B" : { "adequacy" : 5, "fluency" : 5 }, "C" : { "adequacy" : 5, "fluency" : 5 }, "output" : "プリント機構は、 感光體ドラム 11 を備えている。" }, "_id" : { "$oid" : "4ed3428b7f7130fdf093a819" }, "english" : "The printing mechanism comprises the photosensitive drum 11.", "id" : "19990621-173924-EMBODIMENTS-11", "kuro" : { "A" : { "adequacy" : 4, "fluency" : 5 }, "B" : { "adequacy" : 5, "fluency" : 4 }, "C" : { "adequacy" : 1, "fluency" : 2 }, "output" : "印刷機構は、感光體ドラム11配置構成されている。" }, "moses" : { "A" : { "adequacy" : 5, "fluency" : 5 }, "B" : { "adequacy" : 5, "fluency" : 5 }, "C" : { "adequacy" : 5, "fluency" : 5 }, "output" : "プリント 機構 は 、 感光 體 ドラム 11 を 備え て いる 。 " }, "ref" : "プリント機構は、感光體ドラム11を備えている。", "tsbmt" : { "A" : { "adequacy" : 5, "fluency" : 5 }, "B" : { "adequacy" : 5, "fluency" : 5 }, "C" : { "adequacy" : 4, "fluency" : 3 }, "output" : "印字機構は感光性のドラム11を含む。" } } 
{ "NICT-ATR" : { "A" : { "adequacy" : 4, "fluency" : 5 }, "B" : { "adequacy" : 5, "fluency" : 4 }, "C" : { "adequacy" : 4, "fluency" : 3 }, "output" : "図25は、インデックスコーナー。" }, "NTT" : { "A" : { "adequacy" : 5, "fluency" : 5 }, "B" : { "adequacy" : 5, "fluency" : 5 }, "C" : { "adequacy" : 5, "fluency" : 4 }, "output" : "インデックスコーナを図 25 に示す。" }, "_id" : { "$oid" : "4ed3428b7f7130fdf093a6c9" }, "english" : "FIG. 25 shows the index corner.", "id" : "19990630-184545-EMBODIMENTS-234", "kuro" : { "A" : { "adequacy" : 5, "fluency" : 5 }, "B" : { "adequacy" : 5, "fluency" : 5 }, "C" : { "adequacy" : 5, "fluency" : 3 }, "output" : "インデックスコーナー図25示す。" }, "moses" : { "A" : { "adequacy" : 5, "fluency" : 5 }, "B" : { "adequacy" : 5, "fluency" : 5 }, "C" : { "adequacy" : 5, "fluency" : 5 }, "output" : "インデックス コーナ 部 を 図 25 に 示す 。 " }, "ref" : "図25に、インデックスコーナーを示している。", "tsbmt" : { "A" : { "adequacy" : 5, "fluency" : 5 }, "B" : { "adequacy" : 5, "fluency" : 5 }, "C" : { "adequacy" : 5, "fluency" : 5 }, "output" : "図25はインデックス・コーナーを示す。" } } 

第一行永遠不會被導入。我試着改變順序,在標題中插入一個空行,它總是第一行。

更容易引起混淆,mongoimport聲稱它的正常工作,說它進口3個對象:

$ ./mongoimport --file ~/ribes/ntcir-min.json -c ej --drop 
connected to: 127.0.0.1 
dropping: test.ej 
imported 3 objects 

然後收集在檢查數據只返回2的結果:

$ ./mongo 
MongoDB shell version: 2.0.0 
connecting to: test 
> db 
test 
> db.ej.count() 
2 

沒有人有任何這可能是什麼想法?

更新:添加一個空的JSON對象到第一線{}使得mongoimportimported 4但給出正確的輸出數據。

更新:當我試圖用mongoimport -d ntcir指定分貝,而不是把它留給默認test的,正確導入數據。這是預期的行爲?

回答

0

試圖重現我的箱子 文本複製到UTF-8編碼的文件 運行導入命令 和它成功...

的區別是,我必須指定-h原因默認值(127.0.0.1)在我的環境中不可識別...

c:\Servers\Mongo\bin>mongoimport.exe --file d:\imp.json -h localhost -c ej --drop 
connected to: localhost 
dropping: test.ej 
imported 3 objects 

c:\Servers\Mongo\bin>mongo.exe 
MongoDB shell version: 2.0.1 
connecting to: test 
> db.version() 
2.0.1 
> db 
test 
> db.ej.count() 
3 
0

我也已驗證它對我來說正常工作。它必須與文件編碼和Windows可能有關。你是如何創建文本文件的?

如果你可以,嘗試在Windows創建一個UTF-8文件指令,因此我們可以肯定它不是一個編碼的問題:

您可以節省使用記事本文件(有時稱爲「編輯器「)爲UTF-8,但不是寫字板。

  1. 打開記事本
  2. 將文本粘貼到新文件
  3. 文件 - 另存爲 - >還有你看3場設置的最後一個所謂的 「編碼」 到:UTF-8

請讓我知道如果這是訣竅。