Esta es una breve nota revisando las características del lenguaje MongoDB MQL destacadas en el blog de la versión: MongoDB 4.4: Ingeniería orientada al usuario. Listo para usted. La versión 4.4 de MongoDB ha añadido una serie de características para el lenguaje MQL. Couchbase lanza la versión 6.5 a principios de año con un importante número de funciones en N1QL, tanto para el servicio de consulta como para el servicio de análisis. Entremos en materia.
| MongoDB 4.4 | Couchbase 6.5 | |
|---|---|---|
| Publicado en | GA: julio de 2020 | GA: enero de 2020 |
| ¿Qué hay de nuevo? | https://www.mongodb.com/collateral/mongodb-4.4-guide | https://docs.couchbase.com/server/current/introduction/whats-new.html |
| Operación UNION set |
Introduce la etapa de canalización de agregación $UnionWith para convertir los datos en un único conjunto. Conjunto de resultados. Equivalente aproximadamente a la operación de conjunto UNION ALL en SQL. https://docs.mongodb.com/master/reference/operator/aggregation/unionWith/#pipe._S_unionWith |
Admite todas las operaciones de conjunto SQL desde la versión inicial: UNION, UNION ALL, EXCEPT, EXCEPT ALL, INTERSECT, INTERSECT ALL. El modificador ALL devuelve duplicados. documentos. El uso de la operación sin ALL evita la etapa de clasificación requerida en la canalización de agregación MQL. Estas operaciones de conjunto se pueden utilizar en cualquier lugar donde se utilice un Se utiliza la consulta SELECT (subconsultas, tablas derivadas, etc.). https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/union.html https://blog.jooq.org/2015/10/06/you-probably-dont-use-sql-intersect-or-except-often-enough/ |
| Expresiones de agregación personalizadas |
Introduce la función $, que permite fragmentos de JavaScript dentro de la agregación. canalización para personalizar el procesamiento. Se pueden crear agregaciones definidas por el usuario. utilizando $accumulate, $function, $merge y $group. Este enfoque es prolijo. y debe reescribirse para cada consulta. En SQL, una vez que un agregado definido por el usuario se crea, se puede reutilizar como cualquier otro agregado. Otras mejoras incluyen funciones escalares simples. https://docs.mongodb.com/master/release-notes/4.4/#custom-aggregation-expressions |
Versión preliminar de funciones SQL y funciones JavaScript que se pueden utilizar en cualquier lugar. Las expresiones están permitidas en N1QL. Pueden formar parte de consultas complejas y son Se espera que esté disponible en la próxima versión principal. MongoDB aún carece de funciones de ventana, que se lanzaron en Couchbase 6.5. y mejorar significativamente la productividad de los desarrolladores. Couchbase admite la agregación basada en JavaScript a través de vistas de map-reduce, aunque No se puede acceder a ellos a través de N1QL. Las funciones de Couchbase Eventing también están escritas en JavaScript y proporcionan un Infraestructura escalable para aplicaciones modernas. |
| Buscar en |
Presenta la búsqueda de texto completo $ basada en Lucene, disponible solo en MongoDB Atlas. MongoDB tiene una funcionalidad de búsqueda limitada y no está basado en Lucene. $search solo se puede utilizar como primera etapa de un proceso de agregación y No se puede utilizar en actualizaciones ni eliminaciones. |
Couchbase 6.5 introdujo la función SEARCH() y las funciones de metadatos relacionadas. Admite desde búsquedas simples de cadenas hasta búsquedas de texto completo con una profunda integración. en el optimizador N1QL. |
| Transacciones |
Introduce la capacidad de crear colecciones e índices dentro de un Transacción no fragmentada. El uso de DDL dentro de transacciones sigue siendo poco frecuente. |
Lanzamiento de transacciones distribuidas para SDK de Java, lo que permite a las aplicaciones para operar en múltiples documentos utilizando API get/set. Distribuido Las transacciones no son compatibles con las instrucciones N1QL. |
Recursos: