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

Importe un archivo JSON en MongoDB con mongoimport

Cuando use MongoDB, puede usar mongoimport para importar documentos a una colección. mongoimport es una utilidad de línea de comandos que importa contenido de un archivo Extended JSON, CSV o TSV. El archivo de importación podría haber sido creado por mongoexport o alguna otra utilidad de exportación.

Este artículo presenta ejemplos de cómo importar un archivo JSON a MongoDB.

Ejemplo

Supongamos que tenemos el siguiente archivo JSON llamado pets.json :

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

El siguiente comando importa el archivo JSON a MongoDB:

mongoimport --db=PetHotel --file=pets.json

En este caso, no especifiqué una colección para importarlo, por lo que creó una colección con el mismo nombre del archivo (pets ).

Comprueba los resultados

Echemos un vistazo a la colección.

db.pets.find()

Resultado:

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

Podemos ver que los documentos se importaron como se esperaba.

Especifique el nombre de la colección

Puedes usar la --collection (o -c ) para especificar una colección en la que importar el archivo.

Aquí hay un ejemplo del uso de la --collection parámetro para importar el mismo archivo a una colección diferente:

mongoimport --db=PetHotel --collection=pets2 --file=pets.json

Si la colección aún no existe, se creará. Si ya existe, el resultado de la importación dependerá del modo que esté usando (más sobre esto a continuación).

Eliminar la colección antes de importar

Puedes usar el --drop parámetro para eliminar cualquier colección existente con el mismo nombre que la que está intentando crear/importar.

Imagina que tenemos un segundo archivo, llamado pets2.json , con el siguiente documento:

{ "_id" : 4, "name" : "Bubbles" }
{ "_id" : 5, "name" : "Hop", "type": "Kangaroo" }

Esto es lo que sucede si importo ese documento a las pets colección usando --drop opción:

mongoimport --db=PetHotel --collection=pets --drop --file=pets2.json

Salida:

2021-01-03T15:42:25.626+1000	connected to: mongodb://localhost/
2021-01-03T15:42:25.640+1000	dropping: PetHotel.pets
2021-01-03T15:42:25.734+1000	2 document(s) imported successfully. 0 document(s) failed to import.

El mensaje nos dice que se eliminó la colección y se importó un documento.

Echemos un vistazo a la colección:

db.pets.find()

Resultado:

{ "_id" : 5, "name" : "Hop", "type" : "Kangaroo" }
{ "_id" : 4, "name" : "Bubbles" }

Como era de esperar, nuestros dos nuevos documentos son los únicos en la colección.

Modos de importación

Hay varios modos de importación que puede usar con mongoimport . Estos modos determinan qué sucede si ya hay documentos coincidentes en la colección a la que intenta importar.

Los modos son los siguientes:

Modo Descripción
insert Este es el modo predeterminado. Este modo inserta los documentos del archivo de importación. Si ya existe un documento coincidente en la colección, se produce un error. Un documento coincidente es aquel que tiene la misma ID única (como un _id coincidente campo) como un documento en el archivo de importación.
upsert Reemplaza documentos existentes en la base de datos con documentos coincidentes del archivo de importación. Se insertan todos los demás documentos.
merge Combina documentos existentes que coinciden con un documento en el archivo de importación con el nuevo documento. Se insertan todos los demás documentos.
delete Elimina los documentos existentes en la base de datos que coinciden con un documento en el archivo de importación. Cualquier documento que no coincida no tiene efecto.

Ver los modos de importación de mongoimport para ver ejemplos de cada modo.

Busca 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 los comandos?

No olvides que debes 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.