# MongoDB

> Una base de datos que guarda cada registro como un documento flexible tipo JSON.

- Nivel: Intermedio
- Temas: Datos, Software
- URL: https://tidbit.legios.com.ar/es/mongodb/
- En inglés: [MongoDB](https://tidbit.legios.com.ar/mongodb/)

**MongoDB** es la base de datos documental más conocida, un tipo de base de datos NoSQL. En lugar de filas en tablas con columnas fijas, guarda **documentos**: registros que se ven como JSON, con campos, listas y objetos anidados. Los documentos parecidos viven juntos en una **colección**, más o menos lo que en SQL sería una tabla.

La gracia es la flexibilidad. Un producto de una tienda online puede ser un único documento con su nombre, su precio, una lista de talles y sus reseñas adentro, todo leído de una sola vez. Dos documentos de la misma colección no necesitan tener los mismos campos, así que sumar un atributo nuevo no obliga a cambiar un esquema antes. Por dentro guarda una versión binaria de JSON llamada BSON, y se consulta con su propia API, no con SQL.

Salió en 2009 de la mano de la empresa que hoy se llama MongoDB Inc., y el nombre viene de "humongous" (gigantesco, en inglés). Desde 2018 usa la licencia SSPL, escrita por la propia empresa, que muchas organizaciones de código abierto no reconocen como open source. Hoy la mayoría de los equipos la usa a través de **MongoDB Atlas**, el servicio administrado en la nube de la empresa. Con los años fue sumando cosas típicas de las bases relacionales, como transacciones que abarcan varios documentos.

## Una analogía

Como un fichero de tarjetas donde cada tarjeta lleva las anotaciones que necesite, en vez de un formulario impreso con todos los casilleros fijados de antemano.

## Para quedarse

- Guarda documentos tipo JSON agrupados en colecciones, no filas en tablas.
- Los documentos de una misma colección pueden tener campos distintos.
- Se consulta con su propia API, no con SQL; Atlas es la versión administrada en la nube.
- Usa la licencia SSPL desde 2018, que no es una licencia open source clásica.

## Para seguir leyendo

- [¿Qué es MongoDB? (documentación oficial)](https://www.mongodb.com/es/docs/manual/)
- [MongoDB en Wikipedia](https://es.wikipedia.org/wiki/MongoDB)

## Términos relacionados

- [NoSQL](https://tidbit.legios.com.ar/es/nosql/): Bases de datos que guardan la información en formas distintas a tablas de columnas fijas.
- [JSON](https://tidbit.legios.com.ar/es/json/): El formato de texto con el que los programas se pasan datos estructurados.
- [SQL](https://tidbit.legios.com.ar/es/sql/): El lenguaje para hacerle preguntas a una base de datos.
- [API](https://tidbit.legios.com.ar/es/api/): El menú de cosas que un programa le deja pedir a otro programa.
- [Código abierto](https://tidbit.legios.com.ar/es/open-source/): Software cuyo código cualquiera puede leer, usar, cambiar y compartir.
- [Computación en la nube](https://tidbit.legios.com.ar/es/cloud-computing/): Alquilar computadoras por internet en vez de comprar las tuyas.
