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
- git clone 報錯 “URL using bad/illegal format or missing URL“GitORM
- 設定Ruby報錯bad response Not Found 404
- 7.105 JSON_ARRAYJSON
- 使用.format格式化json格式的入參ORMJSON
- Unable to download data from https://gems.ruby-china.org/ - bad response Not Found 404HTTP
- Rainbow Bracket SequenceAIRacket
- Bracket Sequences IIRacket
- 3.2.2 Opening a Closed DatabaseDatabase
- D. Invertible Bracket SequencesRacket
- ARC173D-Bracket Walk3DRacket
- Least Cost Bracket Sequence(貪心)ASTRacket
- Format and un-format money/currency in JavaScriptORMJavaScript
- WPF initialization for opening and unitialization for closing process
- 3.1.5.2 Starting an Instance, and Mounting and Opening a DatabaseDatabase
- 求助:TypeError: unsupported format string passed to NoneType.__format__ErrorORMNone
- 3.2.3 Opening a Database in Read-Only ModeDatabase
- ABC 312D題 Count Bracket SequencesRacket
- laravel的response()函式中,輸入array卻響應json的原因Laravel函式JSON
- set excel formatExcelORM
- Dynamics CRM Performance Issue when CRM Forms OpeningORM
- 題解:CF1264D Beautiful Bracket SequenceRacket
- 問題解決:TypeError: unsupported format string passed to NoneType.__format__ErrorORMNone
- [Ruby]format xml with RubyORMXML
- oracle工具 awr formatOracleORM
- vim Google style formatGoORM
- [BSidesCF 2020]Had a bad dayIDE
- Bad magic number for central directory
- HTTP Status 400 – Bad RequestHTTP
- linux phpmailer 502 Bad GatewayLinuxPHPAIGateway
- Docker Nginx 502 Bad getwayDockerNginx
- Ubuntu插入行動硬碟後提示Wrong fs type,bad option,bad superblock on /devUbuntu硬碟BloCdev
- Array.from和 Array.of
- Error on opening a connection to slave1:33061 on local port: 33061Error
- array
- PHP用foreach來表達array_walk/array_filter/array_map/array_reducePHPFilter
- 8.4.2. bytea Escape FormatORM
- jQuery Validate的format()用法jQueryORM