sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB en 2018:un año en revisión

MongoDB es, con mucho, la opción más popular en el mundo de NoSQL, ya que su arquitectura distribuida permite una mayor escalabilidad y su modelo de datos de documentos brinda una buena flexibilidad a los desarrolladores. Casi todos los años, se lanza la versión principal de MongoDB y 2018 no es una excepción. MongoDB 4.0 se lanzó en julio de 2018, seguido de otros lanzamientos menores también. Con MongoDB versión 4.0, ahora se admiten transacciones de varios documentos y conversiones de tipos. MongoDB introdujo una nueva herramienta llamada MongoDB charts (beta) y también agregó compatibilidad con el generador de canalizaciones de agregación en MongoDB Compass en 2018. En este artículo, repasaremos algunas funciones interesantes de MongoDB que se lanzaron en 2018.

Transacciones ACID de varios documentos

Esta fue la característica más esperada en MongoDB. A partir de la versión 4.0, las transacciones de ácido de documentos múltiples contra conjuntos de réplicas están listas para la producción y son compatibles con MongoDB. Todas las transacciones de MongoDB ahora amplían las propiedades ACID, lo que garantiza la integridad de los datos. Es realmente fácil agregar transacciones de ácido en cualquier aplicación que las necesite y no afectan otras operaciones que no las requieren. Con el soporte de transacciones de ácido de múltiples documentos, cualquier operación de escritura que se realice dentro de la transacción no será visible fuera de la transacción. Aquí hay algunos comandos útiles para agregar transacciones de ácido de múltiples documentos dentro de su aplicación.

Función Descripción
Sesión.startTransaction() Iniciar una nueva transacción
Sesión.commitTransaction() Confirma la transacción
Sesión.abortTransacción() Anula la transacción

Aquí hay un pequeño ejemplo de cómo agregar operaciones de transacción usando el shell de Mongo:

akashk:PRIMARY> use mydb
akashk:PRIMARY> db.createCollection(“newColl”)
akashk:PRIMARY> session = db.getMongo().startSession()
akashk:PRIMARY> session { "id" : UUID("62525323-1cd1-4ee8-853f-b78e593b46ba") }
akashk:PRIMARY> session.startTransaction()
akashk:PRIMARY> session.getDatabase("mydb").newColl.insert({name : 'hello'})
akashk:PRIMARY> WriteResult({ "nInserted" : 1 })
akashk:PRIMARY> session.commitTransaction()

Todas las transacciones brindan una vista consistente de los datos en una o varias colecciones en la base de datos mediante el aislamiento de instantáneas. MongoDB no enviará ningún cambio no confirmado a los nodos/réplicas secundarios. Una vez que se confirma una transacción, todos los cambios se aplicarán a los nodos secundarios.

Hay muchos ejemplos en los que podemos usar transacciones ácidas de documentos múltiples de MongoDB como,

  • Transferencia de fondos entre cuentas bancarias
  • Sistema de pago
  • Sistema de comercio
  • Sistema de cadena de suministro
  • Sistema de facturación

Cosas a considerar al agregar transacciones

  1. MongoDB anulará cualquier transacción que se ejecute durante más de 60 segundos.
  2. No se deben cambiar más de 1000 documentos en una sola transacción. Sin límite para las operaciones de lectura.
  3. Cualquier transacción debe tener un tamaño inferior a 16 MB, ya que MongoDb almacena cualquier transacción como una sola entrada en oplog.
  4. Cuando cancela cualquier transacción, se revertirán todos los cambios.

Nuevos operadores de conversión de tipo en canal de agregación

Para obtener información en tiempo real de los datos y escribir consultas complejas, los desarrolladores de MongoDB generalmente prefieren crear una canalización de agregación. En la versión MongoDB 4.0, se agregaron algunos nuevos operadores de conversión de tipo de agregación para consultar datos sin limpiar campos individuales.

Operador de agregación Descripción
$convertir Convierte valor a un tipo especificado
$hasta la fecha Convierte valor a fecha
$aDecimal Convierte valor a decimal
$toDouble Convierte valor a Doble
$toLargo Convierte valor a Largo
$toInt Convierte valor a entero
$aIdObjeto Convierte valor a ObjectId
$toString Convierte valor a Cadena
$ltrim Eliminar caracteres innecesarios del principio de la cadena
$rtrim Eliminar caracteres innecesarios del final de la cadena
$recortar Eliminar caracteres innecesarios de ambos lados de la cadena
Varios nueves Conviértase en un administrador de bases de datos de MongoDB - Llevando MongoDB a la producción Obtenga información sobre lo que necesita saber para implementar, monitorear, administrar y escalar MongoDBDescargar gratis

Funcionalidad extendida de Change Streams

La funcionalidad de los flujos de cambios que proporciona actualizaciones de cambios de datos en tiempo real sin ninguna configuración compleja se introdujo en la versión 3.6. Con la versión 4.0, los flujos de cambios pueden rastrear los cambios de toda la base de datos o el clúster en lugar de solo una colección ahora. Aparte de esto, ahora, los flujos de cambios también devuelven la marca de tiempo del clúster asociada con un evento que puede ser útil para las aplicaciones del servidor.

Migraciones de datos más rápidas

Cuando su base de datos está fragmentada en el clúster, agregar y eliminar nodos de manera elástica de un clúster fragmentado puede llevar mucho tiempo en algunos momentos. El equilibrador de clúster fragmentado, que es responsable de distribuir datos entre todos los fragmentos, obtuvo una actualización importante en la versión 4.0. Ahora, puede finalizar la migración de datos a un ritmo un 40 % más rápido.

Lecturas secundarias sin bloqueo

Anteriormente, MongoDB solía bloquear todas las lecturas secundarias cuando se aplicaban entradas de registro de operación a los nodos secundarios. Esto estaba causando una latencia variable de lecturas secundarias. A partir de MongoDB 4.0, las lecturas secundarias se han vuelto no bloqueantes debido al mayor rendimiento del conjunto de réplicas y las latencias de lectura mejoradas.

Generador de canalizaciones de agregación en Compass

MongoDB compass es la herramienta GUI para MongoDB para visualizar y consultar datos. Este año, MongoDB compass obtuvo una nueva función de tubería de agregación. Proporciona un editor de consultas visual para crear canalizaciones de agregación de varias etapas. Aquí está la instantánea:

Creador de consultas de agregación en Compass

Además de esta característica, compass también tiene la capacidad de exportar sus consultas a cualquier lenguaje de código nativo de su elección ahora.

Gráficos de MongoDB

MongoDB Charts es la nueva herramienta que permite al usuario crear rápidamente visualizaciones en tiempo real de los datos de MongoDB. Esta herramienta está diseñada para el modelo de datos de documentos con soporte de manejo de tipos, reducciones de matriz y documentos anidados también. Esta herramienta permite al usuario crear tableros de gráficos y compartirlos con otros usuarios. Los gráficos de MongoDB ahora están completamente integrados con MongoDB Atlas.

Otras características nuevas de MongoDB

  • MongoDB Stitch:plataforma sin servidor para el desarrollo de aplicaciones cliente que puede acceder a los servicios de Mongo de forma segura.
  • MongoDB Kubernetes:para implementar MongoDB dentro del clúster de Kubernetes.
  • MongoDB Mobile:proporciona flexibilidad y potencia de MongoDB en una forma compacta para que pueda usarse en dispositivos IOT.
  • MongoDB Monitoring Cloud Service:para enviar metadatos de monitoreo a la nube de monitoreo de MongoDB de forma gratuita.

El futuro de MongoDB

MongoDB también planea lanzar algunas características nuevas con su versión 4.2 que incluye,

  • Motor WiredTiger más completo
  • Administrador de transacciones
  • Transacciones en una implementación fragmentada
  • Lecturas puntuales globales