bad JSON array format - found no opening bracket
我真的不想吐槽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 ~]$
當完事具備後,執行匯入命令的時候,報了錯。
相關資料庫伺服器資訊:
源庫作業系統: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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Failed: error reading separator after document # 1: bad JSON array format - found no opening brackAIErrorJSONORM
- Json formatJSONORM
- 設定Ruby報錯bad response Not Found 404
- 7.105 JSON_ARRAYJSON
- git clone 報錯 “URL using bad/illegal format or missing URL“GitORM
- array2json() - Convert PHP arrays to JSONJSONPHP
- Bracket Sequences IIRacket
- Rainbow Bracket SequenceAIRacket
- 使用.format格式化json格式的入參ORMJSON
- Least Cost Bracket Sequence(貪心)ASTRacket
- ARC173D-Bracket Walk3DRacket
- D. Invertible Bracket SequencesRacket
- Unable to download data from https://gems.ruby-china.org/ - bad response Not Found 404HTTP
- 3.2.2 Opening a Closed DatabaseDatabase
- Format and un-format money/currency in JavaScriptORMJavaScript
- Bad Habits
- Error format not a string literal and no format arguments解決方案ErrorORM
- Mysql date_format 與 Oracle to_char(date,’format’)MySqlORMOracle
- ABC 312D題 Count Bracket SequencesRacket
- laravel的response()函式中,輸入array卻響應json的原因Laravel函式JSON
- 'format' 詳解ORM
- SUN format命令ORM
- set excel formatExcelORM
- array new 與 array deletedelete
- PHP array_flip() array_merge() array+array的使用總結PHP
- 求助:TypeError: unsupported format string passed to NoneType.__format__ErrorORMNone
- WPF initialization for opening and unitialization for closing process
- net.sf.json.JSONException: 'object' is an array. Use JSONArray insteadJSONExceptionObject
- 題解:CF1264D Beautiful Bracket SequenceRacket
- array
- oracle工具 awr formatOracleORM
- vim Google style formatGoORM
- MYSQLDUMP TABLE IN SQL FORMATMySqlORM
- [Ruby]format xml with RubyORMXML
- 查詢bad sqlSQL
- 3.2.3 Opening a Database in Read-Only ModeDatabase
- Array()與Array.of()方法區別
- JS Array.reduce 實現 Array.map 和 Array.filterJSFilter