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
--jsonArray
siendo el boleto, si?mongoimport -d <database> -c <collection> --jsonArray -f <filename>.json
.mongoimport --db dbName --collection collectionName --file fileName.json --jsonArray -u ser -p password
authenticationDatabase
como 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 documents
Usando mongoimport puedes lograr lo mismo
dónde,
--drop
es 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 tuterminal
escribiendo 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_pass
Mi 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