Archivo de la etiqueta: mongodb

Importar ficheros CSV a nuestra base de datos en MongoDB

Como importar datos en formato csv a nuestro servidor en MongoDB

CSV es un formato de archivo muy extendido para el intercambio de información. El formato de este es muy simple. La primera fila suele importar fichero csv a mongodbser el nombre de los campos, separados por comas. Las demás filas son los datos en si.

Para importar este tipo de archivos csv ha nuestro servidor de bases de base de datos usaremos el mismo comando que nos proporciona la empresa detrás de MongoDB para importar datos desde un fichero en formato json.

Comando mongoimport

Como ya explique en el otro post donde importamos los datos en formato josn a nuestro servidor MongoDB el comando que utilizaremos es el que MongoDB nos pone a disposición de estas tareas. Este comando es mongoimport. Este comando tiene el siguiente formato básico.

1
mongoimport --db baseDatos --collection coleccion --file fichero_a_importar --type csv

Si nuestro servidor esta instalado en local, escuchando en el puerto por defecto, es decir, el 27017. Y ademas no tiene credenciales de acceso, sera suficiente.

Explicacion del comando mongoimport

Con el parámetro “–db”,  o “-d”, establecemos el nombre donde vamos a importar los datos. No tiene por que existir. Por norma en mongodb, si la base de datos no existe automáticamente el servidor de base de datos no lo crea por nosotros.

El parámetro “–collection”, o “-c”,  estableceremos el nombre de la colección que va ha albergar los documentos que vamos ha importar. Como en el caso de la base de datos, si esta no existiera, el servidor de mongodb la crearlo por nosotros.

El parámetro siguiente, “–file”, establecemos el nombre del fichero en formato csv que vamos a importar.

El parámetro “–type csv” establecemos que el tipo de archivo que vamos ha importar esta en formato csv. En el anterior post, no utilizamos este parámetro, ya que el comando de mongoimport, si no lo indicamos, asume que vamos a utilizar el formato json.

Y en escenario básico, dando se las condiciones anteriores, esto sería suficiente.

Otro parámetros de mongoimport

Pero lo habitual no es tener este escenario idílico, tendremos que utilizar otro parámetros para establecer, tanto el host donde se encuentra el servidor, el puerto en el cual está a la escucha. Y el nombre de usuario y contraseña que necesitaremos para autentificarnos.

Lo parámetros necesarios para estas operaciones son los siguiente.

Para establecer el host del servidor utilizaremos el parámetro “–host” o en su versión abreviada “-h” seguido de la dirección del servidor.

Para el puerto el parámetro que necesitamos es “–port” seguido del puerto que utiliza el servidor de mongodb.

También podemos establecer el host y el puerto con el mismo parámetro host. Para ello lo podemos hacer de la siguiente formato.

1
mongoimport --host direccion_o_IP:puerto

o en formato abreviado

1
mongoimport -h direccion_o_IP:puerto

Para lo que se refiere al registro en el servidor, usaremos el parámetro “–username” o “-u” seguido del nombre de usuario que vamos a utilizar. Para establecer la contraseña usaremos el siguiente parámetro “–password” o en versión abreviada “-p”.

Ejemplo de uso de mongoimport

Un ejemplo de uso quedaría de esta forma.

1
mongoimport --db baseDatos --collection coleccion --type csv --host direccion_o_ip --port 23456 --username usuario --password contraseña --file ficheroImportar.csv

Y si todo lo hemos escrito correctamente, y no se ha producido ningún error, ya tendríamos nuestros datos importados a nuestro servidor de base de datos con MongoDB.

Si te has quedado con alguna duda, me puedes dejar un comentario.

Importar datos en nuestra base de dsatos en MongoDB

Importar datos desde un fichero json a nuestro servidor de MongoDB

Cuando trabajamos con bases de datos, ya sea para pruebas o para iniciar una puesta en marcha en producción. Lo habitual es que tengamos que importar datos desde otro sistema.

El formato JSon es uno de los formatos de intercambio de datos que Importación datos a MongoDBmás popularidad tiene en la actualidad. Este formato nos permite una gran flexibilidad en el manejo de estos. Casi todos los lenguajes de programación, por no decir todos, en la actualidad cuenta con librerías para el manejo de este tipo de datos. Por lo que el manejo de estos se vuelve muy sencillo.

En el caso de MongoDB, no necesitamos utilizar ningún lenguaje de programación para importar un fichero en formato JSon a nuestra base de datos.

Dentro de la instalación de MongoDB podemos encontrar un comando que nos facilita y mucho esta tarea. Este comando es “mongoimport”

Ha este comando le tendremos que pasar una serie de parámetros para indicarle en que base de datos queremos guardas las colecciones, las tablas en el formato de bases de datos relacionales. El nombre de la colección donde queremos que se guarden nuestros documentos, los registros siguiendo la analogía con las bases de datos relaciones. Y por ultimo, el fichero en formato json donde se encuentran nuestros datos.

MongoDB nos facilita un fichero json con las ciudades de Estados Unidos para hacer pruebas. Vamos a usar este fichero para mostrar un ejemplo. El fichero lo podéis encontrar en la siguiente dirección: http://media.mongodb.org/zips.json. Lo descargamos y lo guardamos en nuestro sistema.

Una aclaración, este método es independiente del sistema donde tengamos instalado nuestro servidor MongoDB. Funciona tanto en Linux, Windows, o Mac. En este caso y que no sirva de precedente, las pruebas la he realizado con un windows 10, y con servidor Debian. Lo habitual es tener el servidor de MongoDB corriendo en un servidor Linux.

Importar los datos a nuestro servidor de MongoDB.

Una vez que ya tenemos nuestro fichero descargado vamos a ver como lo importamos.

1
mongoimport --db ciudadesdb --collection ciudades --drop --file zips.json --port 8080

Con el parámetro “–db” le indicamos que queremos guardar los datos en la siguiente base de datos. En este caso “ciudadesdb”.

Con el parámetro “–collection” le indicamos la colección, es decir, la tabla donde queremos guardar los datos. En este caso “ciudades”.

El parámetro “–drop” le indicar a mongoimport que descarte todos los datos que hubiese ya en la colección. Es decir, borraría todos los datos que tuviese la tabla antes de realizar la importación de los datos. Cuidado con este parámetro, si queremos añadir los nuevos datos a los ya existentes, no debemos incluir este parámetro.

El parámetro “–file” es donde le indicamos a mongoimport donde está el fichero en formato json con los datos que deseamos importar.

Y esto sería suficiente que nuestro servidor,

  1. Esta en el equipo local, es decir, está en “localhost”.
  2. El puerto que está a la escucha es el de por defecto de la instalación de MongoDB.
  3. Y además no tiene nombre de usuario ni contraseña para acceder a él.

Parámetros avanzados para mongoimport

Como en muchos de los casos no se va a dar alguna de estas opciones tendremos que utilizar alguno de los siguientes parámetros.

Para indicarle a mongoimport en qué dirección esta nuestro servidor usaremos el paramento “–host” y le indicaremos la dirección donde se encuentra nuestro servidor.

Para indicarle el puerto por que cual está a la escucha nuestro MongoDB utilizaremos el paramento “–port” y el puerto que hemos configurado.

Para autentificarnos en el servidor tendremos que utilizar los siguientes paramentos. Para indicarle el nombre de usuario que tenemos que usar usaremos el parámetro “–username” o en versión corta “-u” seguido del nombre de usuario que deseamos usar. Para indicarle la contraseña utilizaremos le parámetro “–password” o “-p” seguido de la contraseña deseada.

Con estos parámetros ya podremos indicar el servidor que deseamos usar, y el usuario de queremos utilizar.

Si queréis saber más parámetros que podéis utilizar para importar datos a nuestro servidor MongoDB utilizando el comando mongoimport tenéis más información en la página oficial en https://docs.mongodb.com/manual/reference/program/mongoimport/

Y esto sería todo, alguna duda, ya sabéis comentario al canto.