10442

Cannot import json file into Mongo

<h3>Question</h3>

I have a JSON file (from Mongo University) with some JSON in it

However, when I run the import:

<pre class="lang-none prettyprint-override">PS C:\Program Files\MongoDB\Server\3.0\bin> .\mongoimport.exe -d blog -c posts --drop posts.json

I get an error and nothing is imported:

<pre class="lang-none prettyprint-override">2016-04-15T22:21:27.771+0100 connected to: localhost 2016-04-15T22:21:27.772+0100 dropping: blog.posts 2016-04-15T22:21:28.635+0100 error inserting documents: lost connection to server 2016-04-15T22:21:28.635+0100 Failed: lost connection to server 2016-04-15T22:21:28.640+0100 imported 0 documents

From the server:

<pre class="lang-none prettyprint-override">2016-04-15T22:21:22.070+0100 I CONTROL [initandlisten] MongoDB starting : pid=8860 port=27017 dbpath=F:\Mongo\ 64-bit host=Plod 2016-04-15T22:21:22.071+0100 I CONTROL [initandlisten] targetMinOS: Windows Server 2003 SP2 2016-04-15T22:21:22.072+0100 I CONTROL [initandlisten] db version v3.0.11 2016-04-15T22:21:22.072+0100 I CONTROL [initandlisten] git version: 48f8b49dc30cc2485c6c1f3db31b723258fcbf39 2016-04-15T22:21:22.072+0100 I CONTROL [initandlisten] build info: windows sys.getwindowsversion(major=6, minor=1, build=7601, pl atform=2, service_pack='Service Pack 1') BOOST_LIB_VERSION=1_49 2016-04-15T22:21:22.072+0100 I CONTROL [initandlisten] allocator: tcmalloc 2016-04-15T22:21:22.073+0100 I CONTROL [initandlisten] options: { storage: { dbPath: "F:\Mongo\" } } 2016-04-15T22:21:22.079+0100 I JOURNAL [initandlisten] journal dir=F:\Mongo\journal 2016-04-15T22:21:22.079+0100 I JOURNAL [initandlisten] recover : no journal files present, no recovery needed 2016-04-15T22:21:22.117+0100 I JOURNAL [durability] Durability thread started 2016-04-15T22:21:22.118+0100 I JOURNAL [journal writer] Journal writer thread started 2016-04-15T22:21:22.234+0100 I NETWORK [initandlisten] waiting for connections on port 27017 2016-04-15T22:21:27.770+0100 I NETWORK [initandlisten] connection accepted from 127.0.0.1:5047 #1 (1 connection now open) 2016-04-15T22:21:27.772+0100 I COMMAND [conn1] CMD: drop blog.posts 2016-04-15T22:21:28.084+0100 I NETWORK [initandlisten] connection accepted from 127.0.0.1:5048 #2 (2 connections now open) 2016-04-15T22:21:28.231+0100 I - [conn2] Assertion: 10334:BSONObj size: 33609065 (0x200D569) is invalid. Size must be betwe en 0 and 16793600(16MB) First element: insert: "posts" 2016-04-15T22:21:28.610+0100 I CONTROL [conn2] mongod.exe ...\src\mongo\util\stacktrace_win.cpp(175) mon go::printStackTrace+0x43 2016-04-15T22:21:28.611+0100 I CONTROL [conn2] mongod.exe ...\src\mongo\util\log.cpp(134) mon go::logContext+0x8f 2016-04-15T22:21:28.611+0100 I CONTROL [conn2] mongod.exe ...\src\mongo\util\assert_util.cpp(219) mon go::msgasserted+0xce 2016-04-15T22:21:28.611+0100 I CONTROL [conn2] mongod.exe ...\src\mongo\util\assert_util.cpp(211) mon go::msgasserted+0x13 2016-04-15T22:21:28.612+0100 I CONTROL [conn2] mongod.exe ...\src\mongo\bson\bsonobj.cpp(73) mon go::BSONObj::_assertInvalid+0x40c 2016-04-15T22:21:28.612+0100 I CONTROL [conn2] mongod.exe ...\src\mongo\db\dbmessage.cpp(131) mon go::DbMessage::nextJsObj+0x1a0 2016-04-15T22:21:28.612+0100 I CONTROL [conn2] mongod.exe ...\src\mongo\db\dbmessage.h(302) mon go::QueryMessage::QueryMessage+0x6a 2016-04-15T22:21:28.613+0100 I CONTROL [conn2] mongod.exe ...\src\mongo\db\instance.cpp(194) mon go::receivedQuery+0xbf 2016-04-15T22:21:28.613+0100 I CONTROL [conn2] mongod.exe ...\src\mongo\db\instance.cpp(377) mon go::assembleResponse+0x2fd 2016-04-15T22:21:28.614+0100 I CONTROL [conn2] mongod.exe ...\src\mongo\db\db.cpp(205) mon go::MyMessageHandler::process+0xb8 2016-04-15T22:21:28.614+0100 I CONTROL [conn2] mongod.exe ...\src\mongo\util\net\message_server_port.cpp(232) mon go::PortMessageServer::handleIncomingMsg+0x553 2016-04-15T22:21:28.614+0100 I CONTROL [conn2] mongod.exe ...\src\third_party\boost\libs\thread\src\win32\thread.cpp(185) boo st::`anonymous namespace'::thread_start_function+0x21 2016-04-15T22:21:28.615+0100 I CONTROL [conn2] mongod.exe f:\dd\vctools\crt\crtw32\startup\threadex.c(376) _ca llthreadstartex+0x17 2016-04-15T22:21:28.622+0100 I CONTROL [conn2] mongod.exe f:\dd\vctools\crt\crtw32\startup\threadex.c(354) _th readstartex+0x102 2016-04-15T22:21:28.622+0100 I CONTROL [conn2] KERNEL32.DLL Bas eThreadInitThunk+0x22 2016-04-15T22:21:28.629+0100 I CONTROL [conn2] 2016-04-15T22:21:28.630+0100 I NETWORK [conn2] AssertionException handling request, closing client connection: 10334 BSONObj size : 33609065 (0x200D569) is invalid. Size must be between 0 and 16793600(16MB) First element: insert: "posts" 2016-04-15T22:21:28.642+0100 I NETWORK [conn1] end connection 127.0.0.1:5047 (0 connections now open)

What's going on?

I've tried it with 3.0 and 3.2.


<h3>Answer1:</h3>

According to https://jira.mongodb.org/browse/TOOLS-939, there is a bug which is affecting some versions of mongoimport and mongorestore that causes your mongoimport command to fail.

To sort out this problem, you can use --batchSize option with argument as 1.

Use this reformed query:

mongoimport -d blog -c posts < posts.json --batchSize 1

Hope this will work.


<h3>Answer2:</h3>

Try with -j or --numInsertionWorkers flag. Some version has some issues and ticket was created in past. https://jira.mongodb.org/plugins/servlet/mobile#issue/TOOLS-939

mongoimport -j 4 -d blog -c posts --drop posts.json
<h3>Answer3:</h3>

Try the following format

mongoimport posts.json -d blog -c posts --drop --jsonArray
<h3>Answer4:</h3>

To import json file to your currently working mongoDB batabase, please follow the steps given below.

<ol><li>Go to your the link and then select the cluster that your currently working with.</li> <li>Click on COLLECTIONS and after that go to command line tools.</li> <li>You can see Data Import and Export Tools over there which provides the command to import your json file to your database.</li> <li>Replace the tags as instructed in the command.</li> </ol>

If you get any error like:

Failed: cannot decode array into a D

Then add --jsonArray at last of the command. Example:

mongoimport --host <hostname> --ssl --username <username> --password <PASSWORD> --authenticationDatabase admin --db <DATABASE> --collection <COLLECTION> --file <FILENAME> --jsonArray

来源:https://stackoverflow.com/questions/36657175/cannot-import-json-file-into-mongo

Recommend