Importar un archivo JSON en MongoDB

Tahseen Tauseef 20 junio 2023
  1. ¿Qué es MongoDB?
  2. el comando mongoimport
  3. Importar datos en MongoDB utilizando el comando mongoimport
  4. Importe archivos JSON a MongoDB usando el comando mongoimport
  5. Importe archivos CSV a MongoDB usando el comando mongoimport
  6. Importe archivos TSV a MongoDB usando el comando mongoimport
Importar un archivo JSON en MongoDB

Este tutorial discutirá cómo importar rápida y fácilmente los tres formatos de archivo (JSON, CSV y TSV) en su instancia de base de datos MongoDB. Entonces, sin más preámbulos, entremos de lleno.

¿Qué es MongoDB?

MongoDB es un sistema de base de datos NoSQL (no relacional).

Encajar datos diferentes en un modelo relacional ajustado es una molestia si trabaja con datos enormes. Las bases de datos SQL, también conocidas como sistemas de administración de bases de datos relacionales (RDBMS), almacenan datos en filas y columnas de acuerdo con un diseño predefinido que no es ideal para almacenar grandes cantidades de datos.

Las bases de datos no relacionales o NoSQL, como MongoDB, tienen esquemas dinámicos que los desarrolladores pueden actualizar sobre la marcha. Con énfasis en una mayor escalabilidad y búsquedas rápidas, MongoDB ha surgido como una solución preferible a las bases de datos SQL.

La arquitectura de esquema dinámico de MongoDB permite actualizaciones rápidas de aplicaciones al tiempo que simplifica la programación para los desarrolladores.

MongoDB es ventajoso para los desarrolladores ya que ofrece soporte oficial para todos los lenguajes comunes, incluidos C, C++, C#, etc. Además, net, Go, Java, Node.js, Perl, PHP, Python, Motor, Ruby, Scala, Swift y Mongod son todos ejemplos de lenguajes de programación.

Esto permite a los desarrolladores elegir sus idiomas preferidos, lo que se traduce en tiempos de desarrollo más cortos y menos defectos.

Características clave de MongoDB

  • Consultas rápidas: las consultas de MongoDB son sustancialmente más rápidas (hasta 100 veces más rápidas) que las consultas en una base de datos relacional típica. Esto se debe a que las bases de datos SQL almacenan datos en un formato normalizado y las consultas de un solo objeto o entidad necesitan unir datos de numerosas tablas, lo que genera procesos más lentos.

  • Manejar grandes datos no estructurados: la arquitectura de datos de documentos de MongoDB, que mantiene todos los datos relacionados en un solo documento, le permite manejar enormes cantidades de datos no estructurados sin problemas. MongoDB también le permite consultar de una manera diferente que es más sensible a la carga de trabajo.

  • Escalamiento horizontal: la escalabilidad horizontal es un área crucial en la que la mayoría de las bases de datos SQL se quedan cortas. Lo admiten ad hoc o únicamente en tecnologías que aún están en pañales.

    Por otro lado, MongoDB permite la escalabilidad horizontal, lo que le permite agregar servidores básicos de menor costo según sea necesario.

  • Sharding: MongoDB le permite almacenar enormes cantidades de datos distribuyéndolos en varios servidores vinculados a su aplicación. Cuando un servidor no puede administrar el tamaño de los datos, los datos se fragmentan automáticamente en otro servidor.

  • Fácil para los desarrolladores: las estructuras de datos de MongoDB se pueden asignar a las de los lenguajes informáticos. Esto reducirá el tiempo y el esfuerzo necesarios para que los desarrolladores aprendan nuevos lenguajes, configuren MongoDB y almacenen datos.

el comando mongoimport

Antes de ejecutar el comando mongoimport, todos los usuarios deben tener instaladas las utilidades de la base de datos MongoDB en su máquina.

El comando mongoimport puede importar contenido de una exportación JSON, CSV o TSV extendida creada por mongoexport. También le permite restaurar o importar datos de programas de exportación de terceros.

Cuando se trata de administrar su base de datos MongoDB, este comando es útil. Es más rápido y tiene varios subprocesos que cualquier secuencia de comandos a medida que pueda desarrollar para realizar su importación.

Otras herramientas de línea de comandos de MongoDB, como jq para la manipulación de JSON, csvkit para la manipulación de CSV o incluso curl para obtener archivos de datos de servidores en Internet de forma dinámica, se pueden combinar con el comando mongoimport.

El comando mongoimport tiene la siguiente sintaxis:

`mongoimport` <options> <connection-string> <file>

En el formato extendido, se ve así:

mongoimport --host -u -p --authenticationDatabase --db  --colle --drop --file /name_of_file

En las siguientes secciones, veremos las numerosas formas en que puede usar la sintaxis para importar diferentes tipos de archivos, como JSON, CSV y TSV.

Aplicaciones del Comando mongoimport

Puede haber varias situaciones en las que desee hacer referencia a algunos datos o importar una colección que ya existe en su base de datos, independientemente del tipo de aplicación web que desarrolle su equipo. Estas tareas incluyen la recuperación de datos de una colección de archivos JSON o CSV mediante el comando mongoimport de MongoDB.

MongoDB se puede utilizar como fuente de información de back-end cuando sus clientes utilizan sus aplicaciones web, y mongoimport puede ser útil.

En comparación con los formatos de archivo de CSV o TSV, se recomienda JSON, ya que es un formato de datos jerárquico y es preciso acerca de los tipos de datos que codifica, comparable a los documentos de MongoDB. Con ese conocimiento, no lo alentaremos a transformar sus datos en formularios JSON cada vez que desee importarlos con mongoimport; en su lugar, analícelo y determine si desea o no reorganizarlo.

Consideraciones al usar el comando mongoimport

Evite usar mongoimport y mongoexport para copias de seguridad de producción de instancias completas como medida de precaución. Los comandos mongoimport y mongoexport no pueden retener de manera confiable todos los tipos de datos BSON enriquecidos, ya que JSON solo representa un subconjunto de los tipos de BSON.

Por lo tanto, en lugar de usar mongodump y mongorestore, proponemos usar mongodump y mongorestore.

Aquí hay un ejemplo de la operación de inserción en el shell mongo que utiliza la presentación del modo shell para los tipos BSON data date y data numberlong para demostrar cómo los comandos mongoexport y mongoimport emplean una representación de modo estricto para mantener la información:

use test
db.traffic. insert( { _id: 1, volume: NumberLong ('2980001'), date: new Date() } )

La entrada suministrada a data_numberlong debe citarse para evitar perder precisión. Ahora, cuando usa mongoexport para exportar los datos, obtenemos lo siguiente:

mongoexport -- db test --collection traffic -- out traffic.json

Para mantener la información de tipo, los datos exportados aparecen en una representación de modo estricto:

{ "_id" : 1, "volume" : { "$numberLong" : "2980001" }, "date" : { "$date" : "2014-03-13T13:47:42. 483-0400" } }

Importar datos en MongoDB utilizando el comando mongoimport

Como se mencionó anteriormente, mongoimport puede importar archivos JSON, CSV o TSV. Hemos dividido los procedimientos para importar datos de archivos JSON, CSV o TSV en tres partes para mayor claridad y una navegación sencilla.

Antes de pasar a estas secciones, asegúrese de que su instancia de MongoDB esté conectada a la aplicación mongoimport de Windows, macOS o Ubuntu. Si bien hay algunas opciones para conectar mongoimport a su base de datos MongoDB, recomendamos usar la opción –uri, que se ve así:

mongoimport --uri 'mongodb+srv: // mycluster-ABCDE.azure.mongodb. net/test?retryWrites=true&w=majority'
   --username='USERNAME'
   --password='PASSWORD'
Note
Si está utilizando MongoDB Atlas Deployment, vaya a Despliegues de base de datos > Conectar para recuperar su cadena de conexión de Atlas.

Tendrá que crear su propio URI si no está utilizando Atlas Deployment. Si se está conectando a un solo servidor, su URL se verá así: mongodb://your.server. anfitrión. nombre:puerto/, y si ejecuta un conjunto de réplicas\ y se conecta a diferentes nombres de host, su URI se verá así: mongodb://nombre de usuario:contraseña @host1: puerto,host2:puerto/?replicaSet=nombre de conjunto de réplicas.

Importe archivos JSON a MongoDB usando el comando mongoimport

Para importar archivos JSON de una colección, use el siguiente código:

mongoimport --db DB_Name --c collection_ Name --type= json --
file Name-of-the-file-to-import

Dónde,

  1. DB_Name representa el nombre de la base de datos que contiene la colección Collection_Name.
  2. tipo especifica el tipo de archivo JSON (campo opcional).
  3. El nombre y la ruta del archivo JSON a importar/restaurar están representados por nombre-del-archivo-a-importar.

Alternativamente, puede escribir el código anterior de manera más compacta como:

mongoimport -d DB_NAME - c COLLECTION _name --file Name-of-the-file-to-import

Si desea eliminar cualquier colección existente con el mismo nombre que la que está tratando de crear/importar, puede usar el indicador –drop con el comando mongoimport.

mongoimport -d DB_NAME -c collect._name --drop --file Name-of-file-to-import

Puede usar el comando mongoimport de MongoDB para modificar su host o número de puerto al importar datos JSON.

mongoimport --host 123. 123. 123.1 --port 4567 -d DB _ NAME -c collection _name --file Name-of-the-file-to-import

De forma predeterminada, mongoimport se conecta a un mongo en ejecución en localhost en el puerto 27017.

Importe archivos CSV a MongoDB usando el comando mongoimport

Puede usar el comando mongoimport para importar archivos CSV a una colección con la opción de línea de encabezado. Sin embargo, el argumento de la línea de encabezado indica al comando mongoimport que no importe la primera línea como un documento, ya que incluye nombres de campo en lugar de datos.

Use el siguiente código para importar una colección desde un archivo CSV:

mongoimport --db DB_Name --collection collect._Name --type=csv --
headerline --file=Name-of-file-to-import

Dónde,

  1. DB_Name representa el nombre de la base de datos que contiene la colección Collection_Name.
  2. tipo especifica el tipo de archivo CSV (campo opcional).
  3. Título detalla el comando mongoimport para tomar el primer registro de archivo(s) CSV como nombres de campo.
  4. Nombre del archivo a importar representa el nombre y la ruta del archivo CSV que se va a importar/restaurar

Importe archivos TSV a MongoDB usando el comando mongoimport

En comparación con los formatos de archivo CSV, los archivos TSV son fundamentalmente iguales. En consecuencia, ya sea que use la aplicación de Windows mongoimport u otra, puede importar archivos TSV utilizando el mismo método que los archivos CSV.

Solo hay una pequeña diferencia: en lugar de usar –type=csv,, puede usar la opción –type=tsv para informar a mongoimport sobre el nuevo formato.