Permítanme darles una visión general rápida de MongoDB.
¿ Por qué MongoDB es interesante?
¿ Cómo es útil para nuestra aplicación?
¿ Y cuáles son algunas de las características más destacadas de MongoDB en
contraste con las bases de datos SQL tradicionales?
Así que esto no será todo un tratado o bases de datos.
Supongo que tiene suficiente conocimiento de las bases de datos.
Así que lo que yo presentaría lo que MongoDB sería fácil para usted seguir. Por
su conocimiento previo de las bases de datos,
supongo que ya entiende que las bases de datos se utilizan para almacenar datos estructurados
y también le permiten realizar
diversas operaciones de los datos, incluyendo consultar los datos,
insertar registros en la base de datos,
actualizar un registro existente en la base de datos o eliminar un registro de la base de datos.
Las operaciones típicas de crud que se admiten en las bases de datos. El
lenguaje de consulta estructurado o bases de datos basadas en SQL han sido
muy populares durante mucho tiempo como medio de almacenar datos.
MySQL es un ejemplo de base de datos basada en SQL.
Han sido muy eficaces para almacenar
datos y luego abordar muchas de las necesidades de las aplicaciones.
De hecho, muchos sitios web ya usan bases de datos SQL como back-end para almacenar datos dado
que por qué no hay bases de datos SQL
importantes con nuevos tipos de aplicaciones que se están conectando.
Hay una creciente demanda de
nuevas características que no todas las bases de datos basadas en SQL pueden abordar.
Entonces, aquí es donde la base de datos basada en NoSQL no solo la
base de datos basada en SQL está ganando mucha concesión,
MongoDB es un ejemplo de eso.
Por lo tanto, las bases de datos NoSQL están diseñadas para
abordar algunas de las deficiencias de las bases de datos basadas en SQL.
Las bases de datos NoSQL se pueden clasificar en cuatro categorías diferentes.
Tenemos bases de datos basadas en documentos como MongoDB,
tenemos las bases de datos basadas en valores clave más simples como Redis,
bases de datos basadas en la familia de columnas como Cassandra y luego las bases de datos de gráficos más nuevas como
Neo4J y de hecho hay más ahora en el mercado que estos ejemplos que he dado.
Pero, por supuesto, en este curso,
nos concentraremos principalmente en bases de datos basadas en documentos, MongoDB en particular.
Así que voy a revisar más sobre MongoDB en el resto de esta conferencia.
Las bases de datos de documentos, como su nombre lo indica,
se construyen alrededor de los documentos.
Un documento es una unidad autónoma de información y puede estar en muchos formatos diferentes,
siendo JSON uno de los formatos más populares para almacenar documentos en una base de datos de documentos.
Como ejemplo, aquí se muestra un documento JSON y
esto sería algo que se otorga en una base de datos de documentos típica.
Los propios documentos se pueden organizar en colecciones.
Por lo tanto, una colección es un grupo de documentos y, a su vez,
la base de datos en sí puede considerarse como un conjunto de colecciones.
Así que estos términos, «Colecciones de documentos» y «La base de datos» se producirán
con frecuencia cuando discutamos sobre bases de datos de documentos y MongoDB en particular.
¿ Por qué las bases de datos NoSQL son de interés para nosotros?
En particular, la escalabilidad es una de
las razones por las que las bases de datos NoSQL han brillado muy bien.
Ahora, en términos de escalabilidad,
cuando nos fijamos en los dos requisitos:
disponibilidad y consistencia de las bases de datos, normalmente,
las bases de datos SQL encuentran muy difícil cumplir ambos requisitos simultáneamente.
Por lo tanto, existe una compensación entre disponibilidad y consistencia.
Así que aquí es donde las bases de datos NoSQL han tenido mucho
más éxito en el cumplimiento de ambos requisitos.
Aquí es donde
también entra en vigor el tercer aspecto destacado aquí, la tolerancia de partición.
Ahora particionar una base de datos SQL y luego distribuirla no es tan sencillo.
Mientras que una base de datos NoSQL es mucho más susceptible de
ser subdividida y luego distribuida a través de varios servidores.
El segundo aspecto de por qué las bases de datos NoSQL han sido populares es la facilidad de implementación.
Cuando utiliza una base de datos SQL,
existe la necesidad de hacer coincidir los registros de su base de datos SQL con
objetos en su idioma nativo como Java o Javascript, etc.
Por lo tanto, existe una necesidad de mapeo relacional de objetos y
aquí es donde una puerta de enlace intermedia necesita completar este requisito.
Con una base de datos NoSQL como una base de datos basada en documentos que almacena datos en forma de JSON,
el mapeo se vuelve bastante sencillo y esa es una de las razones por las que las
bases de datos NoSQL han sido muy populares en el área de desarrollo web.
Viniendo a MongoDB en particular,
MongoDB es una base de datos de documentos.
El servidor en sí puede admitir varias bases de datos.
Una base de datos en particular es un conjunto de colecciones
y la colección en sí, como hemos discutido anteriormente, es un conjunto de documentos.
Así que el documento se convierte en la unidad de información en el caso de MongoDB.
El documento en MongoDB no es más que un documento JSON.
De hecho, MongoDB almacena el documento en una forma más compacta llamada como formato BSON.
Hablaremos de eso en la siguiente diapositiva.
Mientras que MongoDB es una base de datos basada en documentos,
almacena los documentos JSON en una forma compacta
llamada como el formato BSON o el formato JSON binario.
Ahora esto admite prefijo de longitud en cada valor para
que saltar sobre un campo sea mucho más fácil.
Como puede ver, MongoDB admite características adicionales que una simple base de datos de documentos.
También se almacena la información sobre el tipo de un valor de campo.
Y además, dentro del documento JSON,
se almacenan tipos primitivos adicionales que son útiles
cuando se realizan operaciones en la base de datos.
Cosas como el formato de fecha UTC,
también admite binarios sin procesar y también usa un formato de ID de objeto
para almacenar el ID de cada documento en la base de datos si lo desea.
Hablemos de eso con un poco más de detalle en la siguiente diapositiva.
Hablemos sobre el ID del objeto MongoDB.
Cada documento en la base de datos MongoDB debe tener un campo ID,
un campo de ID de subrayado,
que actúa como la clave principal del documento.
Y este campo es único para cada documento.
El campo ID en sí se puede usar en
muchos formatos y un formato particular que MongoDB
asigna automáticamente en caso de que no elija usar su propio campo de ID
es el ID de objeto que se crea de forma predeterminada por MongoDB.
Por lo tanto, el ID del objeto en sí es
una pieza estructurada de información, pero se almacena como el ID del documento.
Como ejemplo, el campo ID que
Mongo asigna automáticamente en caso de que no especifique un campo ID
contiene el ID del objeto en forma de una cadena larga.
Ahora esta cadena tiene un formato específico que
le permite almacenar una cantidad de información dentro del ID del objeto.
Veamos la estructura del ID del objeto en la siguiente diapositiva.
Como mencioné, el campo ID de objeto en sí es
un campo de 12 bytes que almacena información en un formato específico.
Los primeros cuatro bytes incluyen una marca de tiempo,
la marca de tiempo Unix típica en la resolución de un segundo.
Así que esto se cuenta en los primeros cuatro bytes.
Luego, los siguientes tres bytes hacia el ID de
la máquina, la máquina en la que se está ejecutando
el servidor Mongo y los siguientes dos bytes es el ID del proceso,
el proceso específico de Mongo que ha creado
este documento y luego el último campo es un incremento.
Ahora, como usted entiende,
el campo de marca de tiempo en sí está a la resolución de un segundo.
Por lo tanto, si tiene varios documentos que se almacenan en el mismo segundo,
entonces el campo de incremento distinguirá entre los documentos.
El campo de incremento es un campo auto-incrementante.
Por lo tanto, cada nuevo documento creado en un segundo obtendrá un nuevo valor de incremento.
Por lo tanto, combinado con estos dos,
puede distinguir fácilmente entre
diferentes documentos que se almacenan dentro de su base de datos de documentos.
Por lo tanto, esto le permite dar claramente un ID único a cada documento.
No solo eso, dado un ID,
puede recuperar fácilmente información de este ID.
Entonces, por ejemplo, puede obtener el ObjectID y luego llamar
al método GetTimestamp del ID del objeto y
esto devolverá la marca de tiempo en el formato de fecha ISO.
Esto le permitirá identificar cuándo se ha creado este documento.
Con esta rápida comprensión de MongoDB,
vamos a continuar con el ejercicio donde primero instalaremos MongoDB en nuestro ordenador
y luego interactuaremos con la base de datos MongoDB usando la ondulación Mongo,
el bucle de impresión de evaluación de lectura que Mongo admite.
Ahora a partir de entonces, veremos cómo podemos acceder
al servidor Mongo desde nuestra aplicación de nodo en la siguiente lección.