Compatibilidad de Amazon DocumentDB con MongoDB - Amazon DocumentDB

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Compatibilidad de Amazon DocumentDB con MongoDB

Amazon DocumentDB es compatible con MongoDB, incluidos MongoDB 4.0 y MongoDB 5.0. La compatibilidad con MongoDB significa que la gran mayoría de las aplicaciones, controladores y herramientas que ya utiliza en la actualidad con sus bases de datos de MongoDB se pueden utilizar con Amazon DocumentDB con pocos o ningún cambio. En esta sección se describe todo lo que necesita saber sobre la compatibilidad de Amazon DocumentDB con MongoDB, incluyendo las nuevas capacidades y características, los primeros pasos, las rutas de migración y las diferencias funcionales.

Compatibilidad con MongoDB 5.0

Novedades de Amazon DocumentDB 5.0

Amazon DocumentDB 5.0 presenta nuevas características y capacidades que incluyen límites de almacenamiento y cifrado a nivel de campo del lado del cliente. El siguiente resumen presenta algunas de las principales características que se introdujeron en Amazon DocumentDB 5.0. Para ver una lista completa de nuevas capacidades, consulte Notas de la versión.

  • Se aumentó el límite de almacenamiento a 128 TiB para los clústeres de Amazon DocumentDB basados en instancias y para los clústeres elásticos basados en particiones.

  • Se presentó el motor Amazon DocumentDB 5.0 (versión 3.0.775)

    • Compatibilidad con los controladores API de MongoDB 5.0

    • Compatibilidad con el cifrado a nivel de campo (FLE) del lado del cliente. Ahora puede cifrar los campos del lado del cliente antes de escribir los datos en el clúster de Amazon DocumentDB. Para obtener más información, consulte Cifrado a nivel de campo del lado del cliente.

    • Nuevos operadores de agregación: $dateAdd, $dateSubtract

    • Compatibilidad con índices con operador $elemMatch. Como resultado, las consultas que se realicen con $elemMatch, darán lugar a escaneos del índice.

Amazon DocumentDB no es compatible con todas las funciones de MongoDB 5.0. Cuando creamos Amazon DocumentDB 5.0, partimos de las características y capacidades que nuestros clientes nos pedían más. Seguiremos añadiendo capacidades adicionales a MongoDB 5.0 en función de lo que nos pidan los clientes. Para ver la lista más reciente de los compatibles APIs, consulte. APIsMongoDB, operaciones y tipos de datos compatibles en Amazon DocumentDB

Introducción a Amazon DocumentDB 5.0

Para empezar a utilizar Amazon DocumentDB 5.0, consulte la Guía de introducción. Puede crear un nuevo clúster de Amazon DocumentDB 5.0 mediante el AWS SDK AWS CLI, AWS Management Console o. AWS CloudFormation Al conectarse a Amazon DocumentDB, es necesario que utilice un controlador o una utilidad de MongoDB que sea compatible con MongoDB 5.0 o superior.

nota

Cuando utilice el AWS SDK o el motor AWS CloudFormation, la versión predeterminada será 5.0.0. AWS CLI Debe especificar de forma explícita el parámetro engineVersion = 4.0.0 para crear un nuevo clúster de Amazon DocumentDB 4.0 o engineVersion = 3.6.0 para crear un nuevo clúster de Amazon DocumentDB 3.6. Para un clúster de Amazon DocumentDB determinado, puede determinar la versión del clúster mediante la llamada describe-db-clusters o AWS CLI utilizar la consola de administración de Amazon DocumentDB para ver el número de versión del motor de un clúster en particular.

Amazon DocumentDB 5.0 es compatible con los procesadores Amazon EC2 Graviton2, como r6g los tipos de t4.medium instancias para sus clústeres, y está disponible en todas las regiones compatibles. Para obtener más información acerca del precio, consulte Amazon DocumentDB (with MongoDB compatibility) Pricing.

Actualización o migración a Amazon DocumentDB 5.0

Puede migrar de MongoDB 3.6 o MongoDB 4.0 a Amazon DocumentDB 5.0 mediante AWS DMS o mediante utilidades como mongodump, mongorestore, mongoimport, y mongoexport. Para obtener instrucciones sobre cómo migrar, consulte Actualización del clúster de Amazon DocumentDB mediante AWS Database Migration Service.

Diferencias funcionales

Diferencias funcionales entre Amazon DocumentDB 4.0 y 5.0

Con el lanzamiento de Amazon DocumentDB 5.0, existen diferencias funcionales entre Amazon DocumentDB 4.0 y Amazon DocumentDB 5.0:

  • La función de copia de seguridad integrada ahora es compatible con serverStatus. Acción: los desarrolladores y las aplicaciones con función de backup pueden recopilar estadísticas sobre el estado del clúster de Amazon DocumentDB.

  • El campo SecondaryDelaySecs reemplaza a slaveDelay en la salida replSetGetConfig.

  • El comando hello reemplaza a isMaster - hello devuelve un documento que describe la función de un clúster de Amazon DocumentDB.

  • Amazon DocumentDB 5.0 ahora es compatible con escaneos de índices con el operador $elemMatch en el primer nivel de anidación. Los escaneos de índices son compatibles cuando el filtro para solo consultas tiene un nivel de filtro de $elemMatch, pero no son compatibles si se incluye una consulta de $elemMatch anidada.

    Por ejemplo, en Amazon DocumentDB 5.0, si usted incluye el operador $elemMatch en el nivel anidado, no devolverá un valor como lo hace en Amazon DocumentDB 4.0:

    db.foo.insert( [ {a: {b: 5}}, {a: {b: [5]}}, {a: {b: [3, 7]}}, {a: [{b: 5}]}, {a: [{b: 3}, {b: 7}]}, {a: [{b: [5]}]}, {a: [{b: [3, 7]}]}, {a: [[{b: 5}]]}, {a: [[{b: 3}, {b: 7}]]}, {a: [[{b: [5]}]]}, {a: [[{b: [3, 7]}]]} ]); // DocumentDB 5.0 > db.foo.find({a: {$elemMatch: {b: {$elemMatch: {$lt: 6, $gt: 4}}}}}, {_id: 0}) { "a" : [ { "b" : [ 5 ] } ] } // DocumentDB 4.0 > db.foo.find({a: {$elemMatch: {b: {$elemMatch: {$lt: 6, $gt: 4}}}}}, {_id: 0}) { "a" : [ { "b" : [ 5 ] } ] } { "a" : [ [ { "b" : [ 5 ] } ] ] }
  • La proyección “$” de Amazon DocumentDB 4.0 devuelve todos los documentos con todos los campos. Con Amazon DocumentDB 5.0, el comando find con una proyección “$” devuelve los documentos que coinciden con el parámetro de consulta y contienen solo el campo que coincide con la proyección “$”.

  • En Amazon DocumentDB 5.0, los comandos find con parámetros de consulta $regex y $options los comandos devuelven un error: “No se pueden establecer opciones en ambos$regex y $options”.

  • Con Amazon DocumentDB 5.0, $indexOfCP ahora devuelve “-1” cuando:

    • la subcadena no se encuentra en la expresión de cadena, o

    • el inicio es un número mayor que el final, o

    • el inicio es un número mayor que la longitud en bytes de la cadena.

  • En Amazon DocumentDB 4.0, $indexOfCP devuelve “0” cuando la posición inicial es un número mayor que el final o que la longitud en bytes de la cadena.

  • Con Amazon DocumentDB 5.0, las operaciones de proyección en _id fields, por ejemplo {"_id.nestedField" : 1}, devuelven documentos que solo incluyen el campo proyectado. En cambio, en Amazon DocumentDB 4.0, los comandos de proyección de campos anidados no filtran ningún documento.

Compatibilidad con MongoDB 4.0

Características de Amazon DocumentDB 4.0

Amazon DocumentDB 4.0 introdujo muchas características y capacidades nuevas que incluían transacciones ACID y mejoras en los flujos de cambios. El siguiente resumen presenta algunas de las principales características que se introdujeron en Amazon DocumentDB 4.0. Para ver una lista completa de capacidades, consulte Notas de la versión.

  • Transacciones ACID: Amazon DocumentDB ahora es compatible con la capacidad de realizar transacciones en varios documentos, estados de cuenta, colecciones y bases de datos. Las transacciones simplifican el desarrollo de aplicaciones al permitirle realizar operaciones atómicas, consistentes, aisladas y duraderas (ACID) en uno o más documentos dentro de un clúster de Amazon DocumentDB. Para obtener más información, consulte Transacciones en Amazon DocumentDB.

  • Flujos de cambios: ahora puede abrir un flujo de cambios a nivel de clúster (client.watch() o mongo.watch()) y la base de datos (db.watch()), puede especificar un startAtOperationTime para abrir el cursor de flujo de cambios y, por último, puede ampliar el período de retención del flujo de cambios a 7 días (anteriormente 24 horas). Para obtener más información, consulte Uso de flujos de cambios con Amazon DocumentDB.

  • AWS Database Migration Service(AWS DMS): Ahora puede usarlo AWS DMS para migrar sus cargas de trabajo de MongoDB 4.0 a Amazon DocumentDB. AWS DMS ahora admite una fuente de MongoDB 4.0, un destino de Amazon DocumentDB 4.0 y una fuente de Amazon DocumentDB 3.6 para realizar actualizaciones entre Amazon DocumentDB 3.6 y 4.0. Para obtener más información, consulte la Documentación de AWS DMS.

  • Rendimiento e indexación: puede utilizar un índice con $lookup, buscar consultas con una proyección que contenga un campo o un campo y el campo _id puede servir directamente desde el índice sin necesidad de leer la colección (consulta cubierta), capacidad de hint() con findAndModify, optimizaciones del rendimiento para $addToSet y mejoras para reducir el tamaño general de los índices. Para obtener más información, consulte Notas de la versión.

  • Operadores: Amazon DocumentDB 4.0 ahora es compatible varios operadores de agregación nuevos: $ifNull, $replaceRoot, $setIsSubset, $setIntersection, $setUnion, $setEquals. Puede ver todos los tipos de datos, operaciones y APIs MongoDB que admitimos en. APIsMongoDB, operaciones y tipos de datos compatibles en Amazon DocumentDB

  • Control de acceso basado en funciones (RBAC): con los comandos ListCollection y ListDatabase, ahora puede usar opcionalmente los parámetros authorizedCollections y authorizedDatabases para permitir a los usuarios enlistar las colecciones y bases de datos a las que tienen permiso de acceso sin necesitar las funciones listCollections y listDatabase, respectivamente. También puede eliminar sus propios cursores sin necesitar la función KillCursor.

Amazon DocumentDB no es compatible con todas las funciones de MongoDB 4.0. Cuando creamos Amazon DocumentDB 4.0, partimos de las características y capacidades que nuestros clientes nos pedían más. Seguiremos añadiendo capacidades adicionales a MongoDB 4.0 en función de lo que nos pidan los clientes. Por ejemplo, Amazon DocumentDB 4.0 actualmente no es compatible con los operadores de conversión de tipos ni con los operadores de cadenas que se introdujeron en MongoDB 4.0. Para ver la lista más reciente de los compatibles APIs, consulta. APIsMongoDB, operaciones y tipos de datos compatibles en Amazon DocumentDB

Introducción a Amazon DocumentDB 4.0

Para empezar a utilizar Amazon DocumentDB 4.0, consulte la Guía de introducción. Puede crear un nuevo clúster de Amazon DocumentDB 4.0 mediante el AWS SDK AWS CLI, AWS Management Console o. AWS CloudFormation Al conectarse a Amazon DocumentDB, es necesario que utilice un controlador o una utilidad de MongoDB que sea compatible con MongoDB 4.0 o superior.

nota

Cuando utilice el AWS SDK o el motor AWS CloudFormation, la versión predeterminada será 5.0.0. AWS CLI Debe especificar de forma explícita el parámetro engineVersion = 4.0.0 para crear un nuevo clúster de Amazon DocumentDB 4.0 o engineVersion = 3.6.0 para crear un nuevo clúster de Amazon DocumentDB 3.6. Para un clúster de Amazon DocumentDB determinado, puede determinar la versión del clúster mediante la llamada describe-db-clusters o AWS CLI utilizar la consola de administración de Amazon DocumentDB para ver el número de versión del motor de un clúster en particular.

Amazon DocumentDB 4.0 es compatible con los tipos de instancia r5, r6g, t3.medium y t4g.medium para sus clústeres y está disponible en todas las regiones compatibles. La utilización de Amazon DocumentDB 4.0 no implica costos adicionales. Para obtener más información acerca del precio, consulte Amazon DocumentDB (with MongoDB compatibility) Pricing.

Actualización o migración a Amazon DocumentDB 4.0

Puede migrar de MongoDB 3.6 o de MongoDB 4.0 a Amazon DocumentDB 4.0 mediante AWS DMS o de utilidades como mongodump, mongorestore, mongoimport y mongoexport. De forma similar, puede utilizar las mismas herramientas para actualizar de Amazon DocumentDB 3.6 a Amazon DocumentDB 4.0. Para obtener instrucciones sobre cómo migrar, consulte Actualización del clúster de Amazon DocumentDB mediante AWS Database Migration Service.

Diferencias funcionales

Diferencias funcionales entre Amazon DocumentDB 3.6 y 4.0

Con el lanzamiento de Amazon DocumentDB 4.0, existen diferencias funcionales entre Amazon DocumentDB 3.6 y Amazon DocumentDB 4.0:

  • Proyección para documentos anidados: Amazon DocumentDB 3.6 considera el primer campo de un documento anidado al aplicar una proyección. Sin embargo, Amazon DocumentDB 4.0 analizará los subdocumentos y aplicará la proyección a cada uno de ellos. Por ejemplo: si la proyección lo es "a.b.c": 1, el comportamiento en ambas versiones es idéntico. Sin embargo, si la proyección es {a:{b:{c:1}}}, Amazon DocumentDB 3.6 solo aplicará la proyección a “a” y no a “b” o “c”.

  • Comportamiento de minKey, maxKey: con Amazon DocumentDB 4.0, el comportamiento de {x:{$gt:MaxKey}} no devuelve nada y para {x:{$lt:MaxKey}}, lo devuelve todo.

  • Diferencias en la comparación de documentos: la comparación de valores numéricos de distintos tipos (doble, int, long) en subdocumentos (p. ej., b en {"_id" :1, "a" :{"b":1}}) ahora proporciona un resultado coherente en todos los tipos de datos numéricos y para cada nivel de un documento.

Diferencias funcionales entre Amazon DocumentDB 4.0 y MongoDB 4.0

A continuación, se muestran las diferencias funcionales entre Amazon DocumentDB 4.0 y MongoDB 4.0.

  • Búsqueda de una clave vacía en la ruta: cuando una colección contiene un documento con una clave vacía dentro de la matriz (por ejemplo {"x" : [ { "" : 10 }, { "b" : 20 } ]}) y cuando la clave utilizada en la consulta termina en una cadena vacía (por ejemplo x.), Amazon DocumentDB devolverá ese documento, ya que recorre todos los documentos de la matriz, mientras que MongoDB no lo devolverá.

  • $setOnInsert junto con $ en la ruta: el operador de campo $setOnInsert no funcionará en combinación con $ en la ruta en Amazon DocumentDB, lo que también es coherente con MongoDB 4.0.