sql >> Base de Datos >  >> NoSQL >> MongoDB

Importe documentos a MongoDB desde una matriz de documentos JSON

Al usar mongoimport , puede usar --jsonArray parámetro para importar una matriz de documentos JSON.

Ejemplo

Supongamos que tenemos el siguiente documento JSON llamado pets_array.json :

[
    {"_id":1.0,"name":"Wag","type":"Dog"},
    {"_id":2.0,"name":"Bark","type":"Dog"},
    {"_id":3.0,"name":"Meow","type":"Cat"}
]

Si tratamos de importar eso a MongoDB sin usando --jsonArray parámetro, obtenemos el siguiente error:

2021-01-03T13:52:58.360+1000	no collection specified
2021-01-03T13:52:58.360+1000	using filename 'pets_array' as collection
2021-01-03T13:52:58.366+1000	connected to: mongodb://localhost/
2021-01-03T13:52:58.371+1000	Failed: cannot decode array into a D
2021-01-03T13:52:58.371+1000	0 document(s) imported successfully. 0 document(s) failed to import.

Básicamente, no puede decodificar la matriz en un documento.

Para arreglar esto, simplemente podemos agregar --jsonArray parámetro:

mongoimport --db=PetHotel --jsonArray --file=pets_array.json

Salida:

2021-01-03T13:58:13.407+1000	no collection specified
2021-01-03T13:58:13.408+1000	using filename 'pets_array' as collection
2021-01-03T13:58:13.421+1000	connected to: mongodb://localhost/
2021-01-03T13:58:13.450+1000	3 document(s) imported successfully. 0 document(s) failed to import.

Esto nos dice que los tres documentos se importaron correctamente.

Ahora podemos echar un vistazo a la colección para comprobar:

db.pets_array.find()

Resultado:

{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }

Como era de esperar, los tres documentos están en la colección recién creada.

La colección se creó recientemente porque no especificamos una colección para importar los documentos. Si lo hubiéramos hecho, se habrían importado a la colección especificada.

No tengo mongoimport ?

mongoimport es parte del paquete de herramientas de base de datos de MongoDB. Las herramientas de base de datos de MongoDB son un conjunto de utilidades de línea de comandos para trabajar con MongoDB.

Si no está seguro de tener MongoDB Database Tools/mongoimport instalado, intente ejecutar el siguiente comando en su Terminal o Símbolo del sistema para verificar:

mongoimport --version

Si lo tiene, debería ver la información de la versión, etc. Si no lo tiene, puede usar las instrucciones de instalación en el sitio web de MongoDB para instalarlo en su sistema.

Dónde ejecutar mongoimport ¿Comandos?

Necesitas ejecutar mongoimport comandos desde la línea de comandos de su sistema (por ejemplo, una nueva ventana de terminal o símbolo del sistema).

No los ejecutes desde mongo cáscara.