Importar un archivo JSON en MongoDB
- ¿Qué es MongoDB?
-
el comando
mongoimport
-
Importar datos en MongoDB utilizando el comando
mongoimport
-
Importe archivos JSON a MongoDB usando el comando
mongoimport
-
Importe archivos CSV a MongoDB usando el comando
mongoimport
-
Importe archivos TSV a MongoDB usando el comando
mongoimport
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'
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,
DB_Name
representa el nombre de la base de datos que contiene la colecciónCollection_Name
.tipo
especifica el tipo de archivo JSON (campo opcional).- 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,
DB_Name
representa el nombre de la base de datos que contiene la colecciónCollection_Name
.tipo
especifica el tipo de archivo CSV (campo opcional).Título
detalla el comandomongoimport
para tomar el primer registro de archivo(s) CSV como nombres de campo.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.