‫Instructor: Al igual que en
‫las secciones anteriores, antes de sumergirnos en
‫una nueva tecnología, aprendamos de qué se trata.
‫Entonces, en este caso, aprendamos qué es realmente MongoDB, cómo
‫funciona y una descripción general rápida
‫de cómo se compara con las bases de datos más tradicionales.
‫Y comencemos con una descripción general simple.
‫Entonces, MongoDB es obviamente una base de datos, y
‫es la llamada base de datos NoSQL.
‫Algunas personas también dicen No S Q
‫L, pero yo seguiré diciendo "no secuela", ¿de acuerdo?
‫Ahora, el otro tipo de base de
‫datos, que es algo más tradicional, es la base de datos
‫relacional, con la que a menudo se compara NoSQL.
‫De todos modos, en Mongo, que también podemos decir en lugar de
‫MongoDB, cada base de datos puede contener una o más colecciones.
‫Entonces, si realmente proviene de uno
‫de estos sistemas de bases de datos relacionales más
‫tradicionales, puede pensar en una colección como una tabla de datos.
‫Luego, cada colección puede contener una o
‫más estructuras de datos llamadas documentos, y nuevamente, en
‫una base de datos relacional,
‫un documento sería una fila en una tabla.
‫Entonces, cada documento contiene los datos
‫sobre una sola entidad, por ejemplo, una
‫publicación de blog o un usuario o una reseña, o cualquier
‫otra cosa, en realidad.
‫Entiendes el punto, ¿verdad?
‫Ahora la colección es como la estructura principal
‫que contiene todas estas entidades.
‫Por ejemplo, una colección de blogs para todas las
‫publicaciones, una colección de usuarios o una colección de reseñas.
‫Y también puede ver aquí que el
‫documento tiene un formato de datos que se parece mucho a
‫JSON, lo que facilitará mucho
‫nuestro trabajo cuando comencemos a trabajar con estos documentos.
‫Y, por supuesto, hablaremos mucho de esto más
‫adelante, pero por ahora, aprendamos sobre las características principales de Mongo.
‫Entonces, según el sitio web de MongoDB,
‫MongoDB es una base de datos de documentos con
‫la escalabilidad y flexibilidad que
‫desea, y con las consultas y la indexación que necesita.
‫Ahora, eso suena un poco exagerado, así
‫que intentemos entender lo que esto realmente significa.
‫Entonces, como vimos antes, MongoDB es una base de datos basada en documentos, por
‫lo que almacena datos en documentos que
‫son estructuras de datos emparejadas con valores de campo como JSON.
‫De nuevo, almacena datos en estos documentos en lugar de
‫filas en una tabla
‫como en las bases de datos relacionales tradicionales.
‫Por lo tanto, es una base de
‫datos NoSQL y no relacional.
‫Además, MongoDB tiene escalabilidad incorporada, lo que facilita la
‫distribución de datos en múltiples máquinas
‫a medida que sus aplicaciones obtienen
‫más y más
‫usuarios y comienzan a generar una tonelada de datos.
‫Entonces, hagas lo que hagas, MongoDB te facilitará
‫el crecimiento.
‫A continuación, otra gran característica de MongoDB
‫es su gran flexibilidad.
‫Por lo tanto, no es necesario definir un esquema de datos de
‫documento antes de completarlo con datos,
‫lo que significa que cada documento puede tener un número
‫y tipo de campos diferente.
‫Y también podemos cambiar estos campos todo el tiempo.
‫Y todo esto está realmente en
‫línea con algunas situaciones comerciales del mundo real
‫y, por lo tanto, puede resultar bastante útil.
‫MongoDB también es un sistema de base de datos muy eficaz.
‫Gracias a características como modelos de datos
‫integrados, indexación, fragmentación, los documentos flexibles
‫de los que ya hablamos, duplicación nativa y
‫mucho más.
‫Y no necesita saber todo esto, por
‫supuesto, pero es bueno saber que MongoDB tiene un alto rendimiento
‫si es necesario.
‫Finalmente, solo quería agregar que MongoDB es
‫una base de datos gratuita
‫y de código abierto, publicada bajo la licencia SSPL.
‫Entonces, en resumen, podemos decir que MongoDB es un
‫gran sistema de base
‫de datos para construir muchos tipos de
‫aplicaciones web modernas, escalables y flexibles.
‫Y de hecho, Mongo es probablemente la base de datos más
‫utilizada sin JS, por lo que es perfecta para
‫que la usemos en este curso.
‫Bien, ahora hablemos un poco
‫más sobre estos documentos, y volviendo a nuestro
‫ejemplo de publicaciones de blog desde el
‫principio, esta podría ser una representación muy
‫simple de un documento de publicación única, ¿verdad?
‫Y ahora, solo por el bien de la
‫comparación, así es como esos mismos datos
‫podrían verse como una fila en una base de datos relacional
‫como MySQL, o incluso en una hoja de cálculo de Excel,
‫si está más acostumbrado a eso.
‫Entonces, como mencioné un poco
‫antes, MongoDB usa un formato de datos similar a JSON
‫para el almacenamiento de datos llamado BSON.
‫Se ve básicamente igual que JSON, pero
‫está escrito, lo que significa
‫que todos los valores tendrán un tipo de datos como
‫cadena, booleano, fecha y profesor, objeto doble o más.
‫Aprenderemos todo sobre esto más adelante en la práctica.
‫Entonces, lo que esto significa es que todos
‫los documentos MongoDB realmente
‫se escribirán, lo cual es diferente de JSON, ¿de acuerdo?
‫Ahora, al igual que JSON, estos documentos BSON también
‫tendrán campos y los datos se almacenan
‫en pares clave-valor.
‫Por otro lado, en una base
‫de datos relacional, cada campo se llama columna.
‫Entonces, aquí nuevamente puede
‫ver cómo estas bases de datos organizan los datos en estructuras
‫de tablas, mientras que nuestros datos JSON son mucho más flexibles.
‫Tomemos, por ejemplo, el
‫campo de etiquetas, donde en realidad
‫tenemos una matriz, por lo que básicamente tenemos varios valores para un campo, ¿verdad?
‫Entonces MongoDB, espacio y DV en este caso.
‫Pero en las bases de datos relacionales, eso no está realmente permitido.
‫No podemos tener varios valores en un campo, por
‫lo que tendríamos que encontrar soluciones alternativas para esto,
‫lo que podría implicar más
‫trabajo y una mayor complicación general.
‫Ahora, otra característica extremadamente importante en MongoDB es
‫el concepto de documentos incrustados, que
‫es, nuevamente, algo que no está presente en
‫las bases de datos relacionales.
‫Entonces, en nuestro campo
‫de comentarios aquí, tenemos una matriz que contiene tres objetos.
‫Uno para cada
‫documento, y cada uno de
‫ellos podría ser su propio documento, ¿verdad?
‫Así que imagina que tuviéramos una colección
‫de comentarios que contenía un montón de documentos de comentarios.
‫Cada uno de ellos podría verse exactamente así, por lo
‫que con un autor y con el texto del
‫comentario, pero en lugar
‫de hacer eso, incluimos estos comentarios directamente en el documento de
‫publicación del blog, por lo que, en otras palabras, incrustamos los documentos
‫de comentarios directamente en el Publicar documento.
‫Entonces, este proceso de incrustación, o desnormalización,
‫como también podemos llamarlo, consiste básicamente en incluir, por
‫lo tanto, incrustar, algunos datos relacionados
‫en un solo documento.
‫En este ejemplo, los comentarios están relacionados con la publicación,
‫por lo que se incluyen en el mismo documento.
‫Y esto hace que una base de datos sea
‫más eficiente en algunas situaciones porque de esta
‫manera, puede ser más fácil
‫leer todos los datos que necesitamos todos a la vez.
‫Y esto es algo de lo que hablaremos mucho cuando
‫aprendamos sobre el modelado de datos,
‫pero por ahora, espero que esto todavía tenga sentido para usted.
‫Ahora, lo opuesto a incrustar o desnormalizar es normalizar,
‫y así es como los datos siempre se modelan en
‫bases de datos relacionales.
‫Entonces, en ese caso, no es posible incrustar datos, por
‫lo que la solución
‫es crear una tabla completamente nueva para
‫los comentarios y luego unir las tablas haciendo
‫referencia al campo ID de la tabla de comentarios.
‫Ahora no vamos a utilizar bases de datos
‫relacionales en este curso, pero creo que aún es importante
‫conocer las diferencias si quieres
‫convertirte en un buen desarrollador de back-end.
‫De todos modos, y ahora solo
‫para terminar, dos cosas más sobre los documentos BSON.
‫Primero, el tamaño máximo de cada
‫documento es actualmente de 16 MB, pero podría aumentar en el futuro.
‫Y en segundo lugar, cada documento contiene una identificación única,
‫que actúa como clave principal de ese documento.
‫Se genera automáticamente con el tipo de datos de ID de objeto cada
‫vez que hay un documento nuevo,
‫por lo que no tenemos que preocuparnos por eso.
‫Muy bien, y esa debería ser una descripción general lo suficientemente
‫breve como para
‫comenzar y para usar MongoDB de la próxima lección en adelante.
‫Entonces, sigamos adelante.