bad JSON array format - found no opening bracket

清風艾艾發表於2016-07-06
  我真的不想吐槽mongodb,也可能是剛接觸mongodb不久,mongodb資料庫真的不是像傳說中說的那麼好上手。今天有個需求,需要從遠端庫匯出json格式的資料檔案,然後匯入到另一個遠端庫。
當完事具備後,執行匯入命令的時候,報了錯。
 相關資料庫伺服器資訊:
  源庫作業系統:windows server 2008R2
 資料庫版本:mongodb 3.2.7
 匯出工具:mongoChef 3.6.0
 目標端作業系統:LINUX redhat6.4
 資料庫版本:mongodb 3.2.7
 匯入工具:1、mongoChef 3.6.0 ;2、mongoimport
 匯出與匯入資料檔案格式:systemprofile.json
 首先,在使用mongoChef進行匯入時,報錯如圖:

真的能讓人鬧心死,mongoChef能將資料匯出,竟然匯入不進去,想不通。
 其次,嘗試
mongoimport匯入,最終是能匯入,但是碰到了2次錯誤。
成功匯入方法記錄如下:
[mongo@se122 ~]$ mongoimport --db zl --collection systemprofile --port 27000 --file /home/mongo/systemprofile.json  --type json
2016-07-06T09:15:41.377+0800 connected to: localhost:27000
2016-07-06T09:15:42.540+0800 imported 682 documents
[mongo@se122 ~]$
碰到的2次錯誤:
報錯一
[mongo@se122 ~]$ mongoimport --db zl --collection systemprofile --file /home/mongo/systemprofile.json  --jsonArray
2016-07-06T09:04:24.903+0800 [........................] zl.systemprofile 0.0 B/2.0 MB (0.0%)
2016-07-06T09:04:25.407+0800 [........................] zl.systemprofile 0.0 B/2.0 MB (0.0%)
2016-07-06T09:04:25.407+0800 Failed: error connecting to db server: no reachable servers
2016-07-06T09:04:25.407+0800 imported 0 documents
[mongo@se122 ~]$
這個報錯好理解,就是 mongoimport無法正常連線到zl資料庫,如果mongodb啟動使用的不是預設的27017,則需要指定資料庫監聽的埠號。看來,這方面mongo沒有oracle智慧。
報錯二
[mongo@se122 ~]$ mongoimport --db zl --collection systemprofile --port 27000 --file /home/mongo/systemprofile.json  --jsonArray
2016-07-06T09:05:30.381+0800 connected to: localhost:27000
2016-07-06T09:05:30.382+0800 Failed: error reading separator after document #1: bad JSON array format - found no opening bracket '[' in input source
2016-07-06T09:05:30.383+0800 imported 0 documents
[mongo@se122 ~]$
指定了埠號, mongoimport能連線到zl資料庫了,但是又來個bad JSON array format - found no opening bracket '[' in input source
原因是資料格式指定的問題,需要將--jsonArray換成--type json。
使用修改後的命令mongoimport --db zl --collection systemprofile --port 27000 --file /home/mongo/systemprofile.json  --type json就能將資料成功匯入了。
[mongo@se122 ~]$ mongoimport --db zl --collection systemprofile --port 27000 --file /home/mongo/systemprofile.json  --type json
2016-07-06T09:15:41.377+0800 connected to: localhost:27000
2016-07-06T09:15:42.540+0800 imported 682 documents
[mongo@se122 ~]$

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29357786/viewspace-2121575/,如需轉載,請註明出處,否則將追究法律責任。

相關文章