Tengo un archivo json que consta de aproximadamente 2000 registros. Cada registro que corresponderá a un documento en la base de datos mongo tiene el siguiente formato:
{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 están al final de cada registro. Por lo tanto, cada línea en el documento comienza con "{jobID:" ... Estoy tratando de importarlos en una base de datos mongo usando 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?
json
mongodb
import
mongoimport
amber4478
fuente
fuente

--jsonArraysiendo el boleto, si?mongoimport -d <database> -c <collection> --jsonArray -f <filename>.json.mongoimport --db dbName --collection collectionName --file fileName.json --jsonArray -u ser -p passwordauthenticationDatabasecomo se menciona en la respuesta stackoverflow.com/a/58067928/6791222 .prueba esto,
Ejemplo,
El problema se debe a su formato de fecha.
Usé el mismo JSON con la fecha modificada que se muestra a continuación y funcionó
espero que esto ayude
fuente
""alrededor del.json, si contiene el nombre de la carpeta tiene espacios. Respondido por Abhi a continuación. Por ejemplo, Esto no funcionará, necesita agregarlo""a la ubicación del archivo json para importarlo.D:\>mongoimport --db testimport --collection small_zip < D:\Dev\test test\small_zips.json The system cannot find the file specified.Esto funcionaD:\>mongoimport --db testimport --collection small_zip < "D:\Dev\test test\small_zips.json" 2016-04-17T18:32:34.328+0800 connected to: localhost 2016-04-17T18:32:34.610+0800 imported 200 documentsUsando mongoimport puedes lograr lo mismo
dónde,
--dropes soltar la colección si ya existe.fuente
consola:
fuente
He utilizado el siguiente comando para exportar DB
y el siguiente comando funcionó para mí para importar DB
fuente
Su sintaxis parece completamente correcta en:
Asegúrese de estar en la carpeta correcta o proporcione la ruta completa.
fuente
Ejecute el comando de importación en otra terminal. (no dentro de mongo shell)
fuente
En Windows puedes usar tu Command Prompcmd
cmd, en Ubuntu puedes usar tuterminalescribiendo el siguiente comando:luego, cuando abra su shell mongo, encontrará que verifique su nombre_de_base_datos cuando ejecute este comando:
fuente
Este comando funciona donde no se especifica ninguna colección.
Mongo shell después de ejecutar el comando
fuente
Intenté algo como esto y realmente funciona:
fuente
Esto funciona conmigo cuando db con usrname y contraseña
db sin nombre de usuario contraseña por favor elimine
-u my_user -p my_passMi muestra json
fuente
Solución:-
Ejemplo:-
Coloque su archivo en la carpeta de administración: -
Ejecute este comando en su terminal: -
Salida:-
Para más enlace
fuente
mongoimport --jsonArray --db dbname - colección collectionName - archivo FilePath
ejemplo mongoimport --jsonArray --db learnmongo --collection persons --file C: \ persons.json
fuente
Si intenta exportar esta colección de prueba:
con mongoexport (la primera fecha creada con
Date(...)y la segunda creada connew Date(...)(si el usoISODate(...)será el mismo que en la segunda línea)) para que la salida de mongoexport se vea así:Por lo tanto, debe usar la misma notación, porque JSON estricto no tiene tipo
Date( <date> ).Además, su JSON no es válido: el nombre de todos los campos debe estar entre comillas dobles, pero mongoimport funciona bien sin ellos.
Puede encontrar información adicional en la documentación de mongodb y aquí .
fuente
sizeT:{data: "1949..."}}Un poco tarde para una respuesta probable, podría ayudar a las personas nuevas. En caso de que tenga varias instancias de base de datos:
Asumiendo las credenciales necesarias, de lo contrario, elimine esta opción.
fuente
Se han dado varias respuestas a pesar de que me gustaría dar el comando mío. Yo solía hacerlo con frecuencia. Puede ayudar a alguien.
fuente