Compatibilité d'Amazon DocumentDB avec MongoDB - Amazon DocumentDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Compatibilité d'Amazon DocumentDB avec MongoDB

Amazon DocumentDB prend en charge la compatibilité avec MongoDB, notamment MongoDB 4.0 et MongoDB 5.0. La compatibilité avec MongoDB signifie qu'une grande majorité des applications, pilotes et outils que vous utilisez déjà aujourd'hui avec vos bases de données MongoDB peuvent être utilisés avec Amazon DocumentDB avec peu ou pas de modifications. Cette section décrit tout ce que vous devez savoir sur la compatibilité d'Amazon DocumentDB avec MongoDB, notamment les nouvelles fonctionnalités, la mise en route, les chemins de migration et les différences fonctionnelles.

Compatibilité avec MongoDB 5.0

Nouveautés d'Amazon DocumentDB 5.0

Amazon DocumentDB 5.0 introduit de nouvelles fonctionnalités et capacités, notamment les limites de stockage et le chiffrement des champs côté client. Le résumé ci-dessous présente certaines des principales fonctionnalités introduites dans Amazon DocumentDB 5.0. Pour consulter la liste complète des nouvelles fonctionnalités, consultez leNotes de mise à jour.

  • Limite de stockage augmentée à 128 TiB pour tous les clusters Amazon DocumentDB basés sur des instances et les clusters élastiques basés sur des partitions.

  • Présentation du moteur Amazon DocumentDB 5.0 (version 3.0.775)

    • Support pour les pilotes MongoDB 5.0 API

    • Support du chiffrement au niveau des champs côté client ()FLE. Vous pouvez désormais chiffrer les champs côté client avant d'écrire les données dans le cluster Amazon DocumentDB. Pour plus d'informations, voir Chiffrement au niveau des champs côté client

    • Nouveaux opérateurs d'agrégation :$dateAdd, $dateSubtract

    • Supports pour les index avec $elemMatch opérateur. Par conséquent, les requêtes correspondantes $elemMatch entraîneront des analyses d'index.

Amazon DocumentDB ne prend pas en charge toutes les fonctionnalités de MongoDB 5.0. Lorsque nous avons créé Amazon DocumentDB 5.0, nous avons travaillé à rebours à partir des fonctionnalités et des fonctionnalités que nos clients nous ont le plus demandées. Nous continuerons à ajouter des fonctionnalités MongoDB 5.0 supplémentaires en fonction de ce que les clients nous demandent de créer. Pour consulter la dernière liste des produits pris en chargeAPIs, veuillez consulterMongoDBAPIs, opérations et types de données pris en charge dans Amazon DocumentDB.

Commencez avec Amazon DocumentDB 5.0

Pour démarrer avec Amazon DocumentDB 5.0, consultez le guide de démarrage. Vous pouvez créer un nouveau cluster Amazon DocumentDB 5.0 à l'aide du AWS Management Console AWS SDK ou. AWS CLI AWS CloudFormation Lorsque vous vous connectez à Amazon DocumentDB, vous devez utiliser un pilote ou un utilitaire MongoDB compatible avec MongoDB 5.0 ou version ultérieure.

Note

Lorsque vous utilisez le AWS SDK AWS CLI, ou AWS CloudFormation, la version du moteur sera par défaut 5.0.0. Vous devez spécifier explicitement le paramètre engineVersion = 4.0.0 pour créer un nouveau cluster Amazon DocumentDB 4.0 ou engineVersion = 3.6.0 pour créer un nouveau cluster Amazon DocumentDB 3.6. Pour un cluster Amazon DocumentDB donné, vous pouvez déterminer la version du cluster à l'aide du AWS CLI to call describe-db-clusters ou utiliser la console de gestion Amazon DocumentDB pour afficher le numéro de version du moteur d'un cluster en particulier.

Amazon DocumentDB 5.0 prend en charge les processeurs Amazon EC2 Graviton2, tels que les types d't4.mediuminstances pour vos clusters, r6g et est disponible dans toutes les régions prises en charge. Pour plus d'informations sur la tarification, consultez la section Tarification d'Amazon DocumentDB (compatible avec MongoDB).

Mise à niveau ou migration vers Amazon DocumentDB 4.0

Vous pouvez migrer de MongoDB 3.6 AWS DMSou MongoDB 4.0 vers Amazon DocumentDB 5.0 à l'aide des utilitaires tels que,, et. mongodumpmongorestoremongoimportmongoexport Pour obtenir des instructions sur la façon de procéder à la migration, consultezMise à niveau de votre cluster Amazon DocumentDB à l'aide de AWS Database Migration Service.

Différences fonctionnelles

Différences fonctionnelles entre Amazon DocumentDB 4.0 et 5.0

Avec la sortie d'Amazon DocumentDB 5.0, il existe des différences fonctionnelles entre Amazon DocumentDB 3.6 et Amazon DocumentDB 4.0 :

  • Le rôle intégré de sauvegarde est désormais compatibleserverStatus. Action : les développeurs et les applications dotés d'un rôle de sauvegarde peuvent collecter des statistiques sur l'état du cluster Amazon DocumentDB.

  • Le SecondaryDelaySecs champ est remplacé slaveDelay dans la replSetGetConfig sortie.

  • La hello commande remplace isMaster - hello renvoie un document qui décrit le rôle d'un cluster Amazon DocumentDB.

  • Amazon DocumentDB 5.0 prend désormais en charge les scans d'index avec l'$elemMatchopérateur au premier niveau d'imbrication. Les analyses d'index sont prises en charge lorsque le filtre réservé aux requêtes possède un niveau de $elemMatch filtre, mais elles ne sont pas prises en charge si une $elemMatch requête imbriquée est incluse.

    Par exemple, dans Amazon DocumentDB 5.0, si vous incluez l'$elemMatchopérateur dans le niveau imbriqué, il ne renverra pas de valeur comme dans 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 projection « $ » dans Amazon DocumentDB 4.0 renvoie tous les documents avec tous les champs. Avec Amazon DocumentDB 5.0, la find commande avec une projection « $ » renvoie les documents qui correspondent au paramètre de requête contenant uniquement le champ correspondant à la projection « $ ».

  • Dans Amazon DocumentDB 5.0, find les commandes contenant les paramètres $regex et les paramètres de $options requête renvoient le message d'erreur suivant : « Impossible de définir les options dans les deux options $regex et $options ».

  • Avec Amazon DocumentDB 5.0, renvoie $indexOfCP désormais « -1 » lorsque :

    • la sous-chaîne est introuvable dans l'expression sous forme de chaîne, ou

    • le début est un nombre supérieur à la fin, ou

    • start est un nombre supérieur à la longueur en octets de la chaîne.

  • Dans Amazon DocumentDB 4.0, $indexOfCP renvoie « 0 » lorsque la position de départ est un nombre supérieur à la fin ou à la longueur en octets de la chaîne.

  • Avec Amazon DocumentDB 5.0, les opérations de projection renvoient_id fields, par exemple{"_id.nestedField" : 1}, des documents qui incluent uniquement le champ projeté. Alors que dans Amazon DocumentDB 4.0, les commandes de projection de champs imbriqués ne filtrent aucun document.

Compatibilité avec MongoDB 4.0

Fonctionnalités d'Amazon DocumentDB 4.0

Amazon DocumentDB 4.0 a introduit de nombreuses nouvelles fonctionnalités et capacités, notamment des ACID transactions et des améliorations apportées aux flux de modifications. Le résumé ci-dessous présente certaines des principales fonctionnalités introduites dans Amazon DocumentDB 4.0. Pour consulter la liste complète des fonctionnalités, consultez leNotes de mise à jour.

  • ACIDTransactions : Amazon DocumentDB permet désormais d'effectuer des transactions sur plusieurs documents, relevés, collections et bases de données. Les transactions simplifient le développement d'applications en vous permettant d'effectuer des opérations atomiques, cohérentes, isolées et durables (ACID) sur un ou plusieurs documents d'un cluster Amazon DocumentDB. Pour de plus amples informations, veuillez consulter Transactions dans Amazon DocumentDB.

  • Flux de modifications : vous pouvez désormais ouvrir un flux de modifications au niveau du cluster (client.watch()oumongo.watch()) et de la base de données (db.watch()), vous pouvez spécifier un curseur startAtOperationTime pour ouvrir un flux de modifications, et enfin vous pouvez étendre la période de conservation de votre flux de modifications à 7 jours (24 heures auparavant). Pour de plus amples informations, veuillez consulter Utilisation de flux de modifications avec Amazon DocumentDB.

  • AWS Database Migration Service(AWS DMS) : Vous pouvez désormais l'utiliser AWS DMS pour migrer vos charges de travail MongoDB 4.0 vers Amazon DocumentDB. AWS DMS prend désormais en charge une source MongoDB 4.0, une cible Amazon DocumentDB 4.0 et une source Amazon DocumentDB 3.6 pour effectuer des mises à niveau entre Amazon DocumentDB 3.6 et 4.0. Pour plus d'informations, consultez la documentation AWS DMS.

  • Performances et indexation : vous pouvez désormais utiliser un index avec$lookup, rechercher des requêtes avec une projection contenant un champ ou un champ et le _id champ pouvant être diffusé directement à partir de l'index et sans avoir à lire dans la collection (requête couverte), la possibilité de le faire hint() avecfindAndModify, des optimisations des performances et des améliorations visant à réduire la taille globale de l'index. $addToSet Pour de plus amples informations, veuillez consulter Notes de mise à jour.

  • Opérateurs : Amazon DocumentDB 4.0 prend désormais en charge un certain nombre de nouveaux opérateurs d'agrégation :$ifNull,,$replaceRoot,$setIsSubset,$setInstersection,$setUnion. $setEquals Vous pouvez voir tous les MongoDBAPIs, les opérations et les types de données que nous prenons en charge sur. MongoDBAPIs, opérations et types de données pris en charge dans Amazon DocumentDB

  • Contrôle d'accès basé sur les rôles (RBAC) : avec les deux ListDatabase commandes ListCollection et, vous pouvez désormais éventuellement utiliser les authorizedDatabases paramètres authorizedCollections et pour permettre aux utilisateurs de répertorier les collections et les bases de données auxquelles ils sont autorisés à accéder sans avoir besoin listDatabase des rôles listCollections et, respectivement. Vous avez également la possibilité de tuer vos propres curseurs sans avoir besoin du KillCursor rôle.

Amazon DocumentDB ne prend pas en charge toutes les fonctionnalités de MongoDB 4.0. Lorsque nous avons créé Amazon DocumentDB 4.0, nous avons travaillé à rebours à partir des fonctionnalités et des fonctionnalités que nos clients nous ont le plus demandées. Nous continuerons à ajouter des fonctionnalités MongoDB 4.0 supplémentaires en fonction de ce que les clients nous demandent de créer. Par exemple, Amazon DocumentDB 4.0 ne prend actuellement pas en charge les opérateurs de conversion de type ou les opérateurs de chaîne introduits dans MongoDB 4.0. Pour consulter la dernière liste des produits pris en chargeAPIs, veuillez consulterMongoDBAPIs, opérations et types de données pris en charge dans Amazon DocumentDB.

Démarrez avec Amazon DocumentDB 4.0

Pour démarrer avec Amazon DocumentDB 4.0, consultez le guide de démarrage. Vous pouvez créer un nouveau cluster Amazon DocumentDB 4.0 à l'aide du AWS Management Console AWS SDK ou. AWS CLI AWS CloudFormation Lorsque vous vous connectez à Amazon DocumentDB, vous devez utiliser un pilote ou un utilitaire MongoDB compatible avec MongoDB 4.0 ou version ultérieure.

Note

Lorsque vous utilisez le AWS SDK AWS CLI, ou AWS CloudFormation, la version du moteur sera par défaut 5.0.0. Vous devez spécifier explicitement le paramètre engineVersion = 4.0.0 pour créer un nouveau cluster Amazon DocumentDB 4.0 ou engineVersion = 3.6.0 pour créer un nouveau cluster Amazon DocumentDB 3.6. Pour un cluster Amazon DocumentDB donné, vous pouvez déterminer la version du cluster à l'aide du AWS CLI to call describe-db-clusters ou utiliser la console de gestion Amazon DocumentDB pour afficher le numéro de version du moteur d'un cluster en particulier.

Amazon DocumentDB 4.0 prend en charge les types d't4g.mediuminstance r5 r6gt3.medium,, et pour vos clusters et est disponible dans toutes les régions prises en charge. L'utilisation d'Amazon DocumentDB 4.0 est gratuite. Pour plus d'informations sur la tarification, consultez la section Tarification d'Amazon DocumentDB (compatible avec MongoDB).

Mise à niveau ou migration vers Amazon DocumentDB 4.0

Vous pouvez migrer de MongoDB 3.6 AWS DMSou MongoDB 4.0 vers Amazon DocumentDB 4.0 à l'aide des utilitaires tels que,, et. mongodumpmongorestoremongoimportmongoexport De même, vous pouvez utiliser les mêmes outils pour effectuer une mise à niveau d'Amazon DocumentDB 3.6 vers Amazon DocumentDB 4.0. Pour obtenir des instructions sur la façon de procéder à la migration, consultezMise à niveau de votre cluster Amazon DocumentDB à l'aide de AWS Database Migration Service.

Différences fonctionnelles

Différences fonctionnelles entre Amazon DocumentDB 3.6 et 4.0

Avec la sortie d'Amazon DocumentDB 4.0, il existe des différences fonctionnelles entre Amazon DocumentDB 3.6 et Amazon DocumentDB 4.0 :

  • Projection pour les documents imbriqués : Amazon DocumentDB 3.6 prend en compte le premier champ d'un document imbriqué lors de l'application d'une projection. Cependant, Amazon DocumentDB 4.0 analysera les sous-documents et appliquera également la projection à chaque sous-document. Par exemple : si la projection est le cas"a.b.c": 1, le comportement dans les deux versions est identique. Toutefois, si c'est le cas, {a:{b:{c:1}}} Amazon DocumentDB 3.6 appliquera la projection uniquement à « a » et non à « b » ou « c' ».

  • Comportement pourminKey, maxKey : dans Amazon DocumentDB 4.0, le comportement pour ne rien {x:{$gt:MaxKey}} renvoyer et pour tout {x:{$lt:MaxKey}} renvoyer.

  • Différences entre les documents : la comparaison de valeurs numériques de différents types (double, int, long) dans des sous-documents (par exemple, b in{"_id" :1, "a" :{"b":1}}) fournit désormais un résultat cohérent pour tous les types de données numériques et pour chaque niveau d'un document.

Différences fonctionnelles entre Amazon DocumentDB 4.0 et MongoDB 4.0

Vous trouverez ci-dessous les différences fonctionnelles entre Amazon DocumentDB 4.0 et MongoDB 4.0.

  • Recherche avec une clé vide dans le chemin : lorsqu'une collection contient un document avec une clé vide dans le tableau (par exemple{"x" : [ { "" : 10 }, { "b" : 20 } ]}), et lorsque la clé utilisée dans la requête se termine par une chaîne vide (par exemplex.), Amazon DocumentDB renvoie ce document car il parcourt tous les documents du tableau alors que MongoDB ne renvoie pas ce document.

  • $setOnInsertainsi que $ dans le chemin : l'opérateur de champ ne $setOnInsert fonctionnera pas en combinaison avec le chemin $ dans Amazon DocumentDB, qui est également compatible avec MongoDB 4.0.