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.