×
Tutorial de MongoDB: Primeros Pasos

Tutorial de MongoDB: Primeros Pasos


¿Oyes cada día mas de MongoDB y no sabes lo que es pero te gustaría incursionar en el? En esta oportunidad nos introduciremos a esta base de datos NoSQL con una serie de 4 posts, para darte las herramientas básicas y que puedas así comenzar tu desarrollo utilizando este tutorial. Comencemos con el tutorial de MongoDB.

Tutorial de MongoDB desde cero para principiantes

Previamente ya les habíamos contado algo sobre MongoDB en un artículo dedicado a ver las alternativas a MySQL Server, en ellas aparte de MariaDB, PostgreSQL, entre otros, también mencionamos al todo poderoso MongoDB. Hoy llegó el momento de finalmente introducirnos a full en MongoDB.

¿Qué es MongoDB?

MongoDB es una base de datos NoSQL, donde a diferencia de SQL que maneja una estructura llave-valor, hace hincapié en el valor de las llaves donde las llaves son llamadas colecciones y tienen una estructura tipo JSON llamados documentos. Para quienes dominen javascript, lenguaje sobre el cual se basa esta solución, le sera más fácil su manipulación.

En esta primera parte del tutorial de MongoDB, les indicaremos como instalar MongoDB en un Sistema Operativo Linux, particularmente nos basaremos en CentOS/RHEL Linux.

Diferencias entre MongoDB y MySQL

Estructura

La principal diferencia de MongoDB con respecto a MySQL es su estructura, ya que este ultimo es un gestor de bases de datos orientado a documentos.

En MySQL todas las filas de una tabla tienen la misma estructura, mientras que en MongoDB esto no se da así. Es decir en MySQL es necesario que cada fila tenga el mismo numero de columnas con los mismos tipos de datos, esto no se da así con MongoDB, aquí, los documentos son individuales e incluso nos permite añadir nuevos campos con cualquier valor.

Esto en MySQL significaría reestructurar toda una base de datos, lo que lo hace muy dificultoso. Por otro lado la clave debe ser única dentro del documento de MongoDB, aunque esta puede repetirse entre documentos.

En MySQL manejamos relaciones utilizando joins, esto no es posible en MongoDB aunque no representa un problema gracias a la ventaja de poder repetir claves entre documentos.

Consultas

Con respecto a  las consultas, MongoDB no utiliza SQL para realizar consultas sino que posee su propio lenguaje, lo que permite la comunicación con el cliente, esto ayudado por librerías.

Principales Ventajas de MongoDB

  • Resulta la opción mas conveniente cuando se requiere el manejo de grandes cantidades de datos en modo lectura.
  • Si se domina una estructura de datos variables, MySQL nos da muchos dolores de cabeza por lo nuevamente MongoDB es superior.
  • La posibilidad de tener un gran desempeño en maquinas de menor rendimiento, por lo que lo hace mas económico.

Instalando MongoDB

Para seguir con este tutorial de MongoDB es vital comenzar con la instalación de esta base de datos NoSQL, y es requerimiento también que conozcas previamente tu arquitectura de servidor.
Puedes conocer si tu arquitectura es de 32 o 64 bits ejecutando el siguiente comando en tu consola:

uname -a

En caso que devuelva algo así como x86_64 entonces tu arquitectura es de 64 bits, de lo contrario es de 32 bits.

Creando el Repositorio

Para proceder a la instalación, inicialmente debemos crear el repositorio de MongoDB. Por lo cual es necesario que crees un archivo en el repo del instalador Yum.

No olvides haber accedido como root a tu servidor para no tener ningún problema o limitación.

Utilizando el editor nano en este caso, deberás ejecutar lo siguiente:

nano -w /etc/yum.repos.d/mongodb.repo

En el añade las siguientes lineas dependiendo de la arquitectura del servidor, añade lo siguiente si es de 64 bits:

[mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/ gpgcheck=0 enabled=1

En caso que tu arquitectura sea de 32 debes colocar lo siguiente:

[mongodb]
 name=MongoDB Repository
 baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686/
 gpgcheck=0
 enabled=1

Una vez creado el repositorio, guarda el archivo y sal del editor.

Instalación de MongoDB en CentOS

Luego de haber creado el repositorio de MongoDB según nuestra arquitectura correspondiente, debes correr el siguiente comando:

yum install mongo-10gen mongo-10gen-server

Aquí debes aceptar la instalación luego que el instalador haya chequeado las dependencias, espera a que finalice el proceso.

Primeros pasos en MongoDB

Al igual que en los demás servicios, este arranca para y reinicia utilizando los comandos básicos, aquí un detalle de estos:

Para iniciar mongoDB es necesario correr lo siguiente.

service mongod start

Para parar el servicio mongod realizamos un stop.

service mongod stop

Finalmente para reiniciarlo lo hacemos de igual forma.

service mongod restart

Para el caso que todo funcione correctamente MongoDB, responderá a estos comandos con un OK.

Conectando MongoDB remotamente

Por defecto, MongoDB corre en el puerto 27017, por lo que es necesario que chequees tu firewall si conectaras al servidor remotamente. Verifica también tu archivo de configuración de MongoDB, el mismo se encuentra en /etc/mongod.conf, debes configurar el puerto, la ruta donde se guardara la BD y la IP a la que estará enlazado.

Estructura de Datos en MongoDB

A continuación veremos un ejemplo  de la estructura de datos con la que trabajaremos en esta serie de artículos acerca de MongoDB.

En MongoDB existen 2 patrones de modelado que nos ayudan a definir la estructura que tendrán los documentos.Estos patrones son Embeber y Referenciar.

  • Embeber: este patrón hace referencia a la incrustacion de documentos uno dentro del otro para hacerlo parte del mismo registro, logrando una relación directa.

Para el caso de las relaciones uno a uno (1-1) utilizaremos este patrón, veamos un ejemplo:

Persona = {

nombre : 'Juan',

apellido : 'Perez',

genero : 'M',

  documentos = {

    pasaporte : 'D123456V7',

    licencia : '34567651-2342',

  }

}

  • Referenciar: Se comporta como claves foráneas para relacionar datos que deben estar en colecciones diferentes.

Suponiendo que tenemos la siguiente estructura:

Persona = {
 nombre   : 'Juan',
 apellido : 'Perez',
 genero   : 'M',
}
Direccion1 = {
 País   : 'Estados Unidos',
 Estado : 'Miami',
 ciudad : 'Florida',
}
Direccion2 = {
 Pais   : 'Estados Unidos',
 Estado : 'Los Angeles',
 ciudad : 'Beverlly Hils',
}

Por método relacionar los vincularíamos de la siguiente manera:

Persona = {
 nombre   : 'Juan',
 apellido : 'Perez',
 genero   : 'M',
 Direccion:[1,2]
}
Direccion1 = {
 _id    : 1, 
 Pais   : 'Estados Unidos',
 Estado : 'Los Angeles',
 ciudad : 'Beverly Hills'
}
Direccion2 = {
 _id    : 2, 
 Pais   : 'Estados Unidos',
 Estado : 'Miami',
 ciudad : 'Florida'
}

Conclusión

Llegado este punto  del tutorial de MongoDB podemos resumir que ahora conocemos qué es MongoDB, lo hemos instalado en nuestro equipo y ya estamos a unos pocos pasos de comenzar a probar este gestor de base de datos.

Actualmente, conocemos en que se diferencia un gestor SQL de otro NoSQL y que ventajas trae este ultimo, pudiendo con estos datos, saber si se adapta o no a nuestro proyecto. Tenemos también una visión de como se manejan los datos, y como podemos estructurar nuestro desarrollo.

Esperamos la introducción a este tutorial de MongoDB te haya gustado y puedas haber evacuado algunas dudas, no te pierdas la segunda parte de esta serie de tutoriales, donde te daremos las herramientas para que puedas utilizarlo a la perfección.

 

¿Te gustó el artículo? Compártelo:

Santiago Borges

Escrito por Santiago Borges

Departamento Técnico VIP, asignado a brindar soporte de forma exclusiva a clientes de alto tráfico y con requerimientos de programación. Además, es un experimentado SysAdmin, que se encargará de que recibas la mejor asistencia ante cualquier problema. Actualmente está cursando estudios de RHCE y posee certificaciones en Inglés por la Universidad de Cambridge. Conoce más sobre él desde su perfil de LinkedIn.

    Recibe en tu correo electrónico toda la información sobre hosting, desarrollo web y dominios

    Términos y Condiciones de Servicio

    Infranetworking Internacional - Copyright 2002-2024
    Todos los derechos reservados.