MongoDB

> Temas > MongoDB
Editar

MongoDB es un SGBD (Sistema Gestor de Base de Datos) documental, que usa el modelo de bases de datos NoSQL.

MongoDB es un popular motor de bases de datos documentales, también llamado modelo NoSQL (Not Only SQL).

Es un SGBD Open Source que comenzó su desarrollo en 2007, aunque se publicó la primera versión considerada apta para producción en 2011, por lo tanto se trata de un motor de bases de datos bastante moderno.

Como tod motor de base de datos documental, la información se organiza en forma de documentos y colecciones de documentos. El formato de los documentos de MongoDB se llama BSON, que es muy similar al popular JSON o los literales de objetos Javascript en general. Los documentos por tanto consisten en Pares clave / valor, donde los valores pueden ser otros documentos clave / valor en cualquier nivel de anidación, tal como se requiera en cada objeto.

Una de las características de MongoDB, que hereda de las NoSQL en general, es que el esquema de los documentos es dinámico. Esto quiere decir que en una misma colección puede haber documentos que tengan distintos tipos de datos, con diversos campos que pueden variar entre unos y otros documentos.

Como Sistema Gestor de Bases de Datos ocupa actualmente la quinta posición en popularidad y uso, siendo el más usado de los sistemas gestores de bases de datos documentales.

El sitio oficial de MongoDB es https://www.mongodb.com/

Más información:

MongoDB

Bases de datos relacionales vs NoSQL

MongoDB lo podemos usar para almacenar datos de todo tipo, aunque por el modelo de datos NoSQL no siempre será la elección más adecuada.

Es el modelo de base de datos más común es el relacional, que está basado en tablas con sus relaciones. Es el que implementan los motores más comunes como MySQL, Oracle, PostgreSQL y otras.

Por las características de las bases de datos documentales (NoSQL), Mongo será más apreciado en el caso que el proyecto tenga unos requisitos especiales en los siguientes factores:

  • Velocidad
  • Volumen
  • Variabilidad

Entre ellos, el más relevante en contraste con las bases de datos relacionales, es la variabilidad. En el modelo relacional los datos son más rígidos y si una entidad requiere una columna diferente que las que tienen otras entidades es imposible proporcionarla de manera individual. Simplemente esa columna se tendrá que crear para todos los registros de esa entidad. Sin embargo, en MongoDB y las bases de datos documentales cada documento puede tener un esquema particular, que no necesita ser el mismo que el esquema de otros documentos de la misma colección.

Además, las bases de datos documentales suelen soportar una mayor cantidad de datos en las colecciones y soportan mejor también la concurrencia, de una manera más natural.

Editar

Casos de uso de MongoDB

MongoDB se puede usar para todo tipo de aplicaciones, pero su uso es más común en aquellas que requieran manejar muchos datos y muy variables. Es por tanto común usar Mongo y otras bases de datos documentales en proyectos como:

  • Internet de las cosas
  • Analítica y estadística
  • Concurrencia
  • Juegos

En aplicaciones donde se adapte mejor el modelo relacional aún podemos usar MongoDB para áreas de estas aplicaciones que requieran una variabilidad y un volumen de datos elevado. Por ejemplo, podemos tener una aplicación definida con el modelo relacional y usar MongoDB para implementar una funcionalidad de Chat que es independiente del modelo de datos de otras partes del negocio.

Editar

Lenguajes soportados por MongoDB

MongoDB está soportado de manera oficial en todos los lenguajes más populares. Ente ellos se encuentran:

  • Java
  • C#
  • PHP
  • Python
  • NodeJS
  • GO
  • Ruby
  • Otros...

De todos modos, aunque MongoDB no se soporte oficialmente en un lenguaje no quiere decir que no se pueda usar, ya que existen multitud de drivers creados por la comunidad para usarla en ellos.

Editar

Instalar MongoDB

El proceso de instalación del sistema gestor de bases de datos MongoDB tiene sus diferencias para cada sistema operativo. No obstante para cualquiera de ellos tenemos dos versiones del sistema de bases de datos. Si queremos contar con la versión gratuita tenemos que seleccionar siempre la que se llama "Community".

En resumen los pasos en los sistemas más importantes son estos:

Windows:

Se instala mediante un asistente, (siguiente, siguiente) como la mayoría del software en Windows.

Para descargar el instalador es importante acudir al sitio oficial de descargas de MongoDB y seleccionar la versión para Windows, que incluirá la escarga el archivo .msi. El proceso de Instalación consiste en ejecutar el archivo .msi descargado.

Durante el proceso nos solicitarán responder a una pregunta importante que consiste en decidir si deseamos que se instale Mongodb como un servicio de Windows o solo que se instale la base de datos. Si eliges que se haga como servicio el motor de la base de datos se iniciará solo cuando se termine de instalar el software y se iniciará con el propio sistema operativo. Si instalas MondoDB sin en servicio entonces necesitarás iniciarlo tú manualmente.

Si no lo instalas como servicio tendrás que realizar unos pasos extra.

  • Crear la carpeta donde se va a almacenar los datos. De manera predeterminada MongoDB espera que todos los datos se almacenen en C:\data\db, así que esa carpeta tiene que existir. Si lo deseas puedes cambiarla pero ten en cuenta que al iniciar el motor de MondoGB deberás usar con la opción --dbpath.
  • Por último, para iniciar MongoDB tienes que ir a la carpeta bin, dentro de donde instalaste MongoDB y ejecuta mongod.exe.

Para iniciar MongoDB si no lo has instalado como servicio podrías usar un comando así:

C:\carpeta\de\MongoDB\bin\mongod.exe" --dbpath="c:\data\db

Linux

En Linux usarás el sistema de repositorios de la distribución que tengas en tu ordenador de escritorio o servidor. A continuación vemos un ejemplo para sistemas basados en Debian o Ubuntu.

Comenzamos por importar las llaves públicas:

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

Luego tienes que Añadir el repositorio de los archivos de MongoDB:

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

Una vez ya tienes los repos de software de MongoDB necesitas actualizar los paquetes e instalar MongoDB con el correspondiente comando de apt:

sudo apt-get update
sudo apt-get install mongodb-org

Una vez instalado, para iniciar MongoDB puedes levantar el servicio con systemctl:

sudo systemctl start mongod

Si lo deseas, puedes habilitar el inicio automático de MongoDB al arrancar tu sistema operativo con este comando:

sudo systemctl enable mongod

En la página de MongoDB encuentras instrucciones para la mayoría de las distribuciones populares, porque los comandos pueden cambiar para cada una.

MacOS

En Mac podemo usar Homebrew para instalar MongoDB de una manera muy sencilla. Los pasos serían los siguientes:

Actualizar Homebrew y la lista de repositorios que maneja:

brew update

Instalar MongoDB en el sistema:

brew tap mongodb/brew
brew install mongodb-community@4.4

En MacOS tenemos que usar los siguientes comandos para **iniciar o parar el servicio de MongoDB:

brew services start mongodb/brew/mongodb-community
brew services stop mongodb/brew/mongodb-community

Es recomendable revisar la documentación oficial de MongoDB, especialmente la página de MongoDB Installation donde se encuentran las indicaciones detalladas para cada sistema operativo y otra serie de detalles que puedes necesitar dependiendo de tu sistema o para configurar opciones avanzadas.

Editar

¿Quieres añadir algo sobre MongoDB?

Crea artículos, recursos o comparte información sobre MongoDB

Crear un bloque

Preguntas y respuestas de MongoDB

Se han recibido 1 faqs en MongoDB

Hacer una pregunta