into collection cluster json mongodb mongoimport

collection - mongoimport json string



Mongoimport of json file (8)

Este comando funciona donde no se especifica ninguna colección.

mongoimport --db zips "/MongoDB 2.6 Standard/mongodb/zips.json"

Mongo shell después de ejecutar el comando

connected to: 127.0.0.1 no collection specified! using filename ''zips'' as collection. 2014-09-16T13:56:07.147-0400 check 9 29353 2014-09-16T13:56:07.148-0400 imported 29353 objects

Tengo un archivo json que consta de aproximadamente 2000 registros. Cada registro que corresponderá a un documento en la base de datos de mongo se formatea de la siguiente manera:

{jobID:"2597401", account:"XXXXX", user:"YYYYY", pkgT:{"pgi/7.2-5":{libA:["libpgc.so"],flavor:["default"]}}, startEpoch:"1338497979", runTime:"1022", execType:"user:binary", exec:"/share/home/01482/XXXXX/appker/ranger/NPB3.3.1/NPB3.3-MPI/bin/ft.D.64", numNodes:"4", sha1:"5a79879235aa31b6a46e73b43879428e2a175db5", execEpoch:1336766742, execModify: new Date("Fri May 11 15:05:42 2012"), startTime: new Date("Thu May 31 15:59:39 2012"), numCores:"64", sizeT:{bss:"1881400168",text:"239574",data:"22504"}},

Cada registro está en una sola línea en el archivo JSON, y los únicos saltos de línea se encuentran al final de cada registro. Por lo tanto, cada línea en el documento comienza con "{ID de trabajo:" ... Estoy tratando de importarlos a una base de datos de mongo con el siguiente comando:

mongoimport --db dbName --collection collectionName --file fileName.json

Sin embargo, me sale el siguiente error:

Sat Mar 2 01:26:12 Assertion: 10340:Failure parsing JSON string near: ,execModif 0x10059f12b 0x100562d5c 0x100562e9c 0x10025eb98 0x10000e643 0x100010b60 0x10055c4cc 0x1000014b7 0x100001454 0 mongoimport 0x000000010059f12b _ZN5mongo15printStackTraceERSo + 43 1 mongoimport 0x0000000100562d5c _ZN5mongo11msgassertedEiPKc + 204 2 mongoimport 0x0000000100562e9c _ZN5mongo11msgassertedEiRKSs + 12 3 mongoimport 0x000000010025eb98 _ZN5mongo8fromjsonEPKcPi + 1576 4 mongoimport 0x000000010000e643 _ZN6Import8parseRowEPSiRN5mongo7BSONObjERi + 2739 5 mongoimport 0x0000000100010b60 _ZN6Import3runEv + 7376 6 mongoimport 0x000000010055c4cc _ZN5mongo4Tool4mainEiPPc + 5436 7 mongoimport 0x00000001000014b7 main + 55 8 mongoimport 0x0000000100001454 start + 52 Sat Mar 2 01:26:12 exception:BSON representation of supplied JSON is too large: Failure parsing JSON string near: ,execModif Sat Mar 2 01:26:12 Sat Mar 2 01:26:12 imported 0 objects Sat Mar 2 01:26:12 ERROR: encountered 1941 errors

No sé cuál es el problema. ¿Alguien puede recomendar una solución?


He usado el siguiente comando para exportación DB

mongodump --db database_name --collection collection_name

y debajo del comando funcionó para mí para importar DB

mongorestore --db database_name path_to_bson_file


Pude arreglar el error usando la siguiente consulta:

mongoimport --db dbName --collection collectionName --file fileName.json --jsonArray

Espero que esto sea útil para alguien.


Si intenta exportar esta colección de prueba:

> db.test.find() { "_id" : ObjectId("5131c2bbfcb94ddb2549d501"), "field" : "Sat Mar 02 2013 13:13:31 GMT+0400"} {"_id" : ObjectId("5131c2d8fcb94ddb2549d502"), "field" : ISODate("2012-05-31T11:59:39Z")}

con mongoexport (la primera fecha creada con Date(...) y la segunda creada con new Date(...) (si usa ISODate(...) será la misma que en la segunda línea)) entonces mongoexport output se verá así:

{ "_id" : { "$oid" : "5131c2bbfcb94ddb2549d501" }, "field" : "Sat Mar 02 2013 13:13:31 GMT+0400" } { "_id" : { "$oid" : "5131c2d8fcb94ddb2549d502" }, "field" : { "$date" : 1338465579000 } }

Entonces debería usar la misma notación, porque el JSON estricto no tiene el tipo Date( <date> ) .

Además, su JSON no es válido: todos los nombres de los campos deben estar entre comillas dobles, pero mongoimport funciona bien sin ellos.

Puede encontrar información adicional en la documentation mongodb y here .


Su sintaxis aparece completamente correcta en:

mongoimport --db dbName --collection collectionName --file fileName.json

Asegúrese de estar en la carpeta correcta o proporcione la ruta completa.


Usando mongoimport puedes lograr lo mismo

mongoimport --db test --collection user --drop --file ~/downloads/user.json

dónde,

test - Database name user - collection name user.json - dataset file

--drop es soltar la colección si ya existe.


consola:

mongoimport -d dbName -c collectionName dataFile.js


prueba esto,

mongoimport --db dbName --collection collectionName <fileName.json

Ejemplo,

mongoimport --db foo --collection myCollections < /Users/file.json connected to: *.*.*.* Sat Mar 2 15:01:08 imported 11 objects

El problema se debe a su formato de fecha.

Usé el mismo JSON con la fecha modificada que a continuación y funcionó

{jobID:"2597401", account:"XXXXX", user:"YYYYY", pkgT:{"pgi/7.2-5":{libA:["libpgc.so"],flavor:["default"]}}, startEpoch:"1338497979", runTime:"1022", execType:"user:binary", exec:"/share/home/01482/XXXXX/appker/ranger/NPB3.3.1/NPB3.3-MPI/bin/ft.D.64", numNodes:"4", sha1:"5a79879235aa31b6a46e73b43879428e2a175db5", execEpoch:1336766742, execModify:{"$date" : 1343779200000}, startTime:{"$date" : 1343779200000}, numCores:"64", sizeT:{bss:"1881400168",text:"239574",data:"22504"}}

espero que esto ayude