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
Rubriques
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.medium
instances 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 DMSmongodump
mongorestore
mongoimport
mongoexport
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 compatible
serverStatus
. 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 lareplSetGetConfig
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'
$elemMatch
opé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'
$elemMatch
opé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
Rubriques
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 curseurstartAtOperationTime
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 fairehint()
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
commandesListCollection
et, vous pouvez désormais éventuellement utiliser lesauthorizedDatabases
paramètresauthorizedCollections
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 besoinlistDatabase
des rôleslistCollections
et, respectivement. Vous avez également la possibilité de tuer vos propres curseurs sans avoir besoin duKillCursor
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.medium
instance r5
r6g
t3.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 DMSmongodump
mongorestore
mongoimport
mongoexport
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 pour
minKey
,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. -
$setOnInsert
ainsi 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.