Compatibilità di Amazon DocumentDB con MongoDB - Amazon DocumentDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Compatibilità di Amazon DocumentDB con MongoDB

Amazon DocumentDB supporta la compatibilità con MongoDB, inclusi MongoDB 4.0 e MongoDB 5.0. La compatibilità con MongoDB significa che la maggior parte delle applicazioni, dei driver e degli strumenti che già utilizzi oggi con i tuoi database MongoDB può essere utilizzata con Amazon DocumentDB con modifiche minime o nulle. Questa sezione descrive tutto ciò che devi sapere sulla compatibilità di Amazon DocumentDB con MongoDB, tra cui nuove funzionalità e caratteristiche, nozioni di base, percorsi di migrazione e differenze funzionali.

Compatibilità con MongoDB 5.0

Novità di Amazon DocumentDB 5.0

Amazon DocumentDB 5.0 introduce nuove caratteristiche e funzionalità che includono limiti di storage e crittografia a livello di campo lato client. Il riepilogo seguente presenta alcune delle principali funzionalità introdotte in Amazon DocumentDB 5.0. Per un elenco completo delle nuove funzionalità, consulta la. Note di rilascio

  • Limite di storage aumentato a 128 TiB per tutti i cluster Amazon DocumentDB basati su istanze e i cluster elastici basati su shard.

  • Introduzione del motore Amazon DocumentDB 5.0 (versione 3.0.775)

    • Support per i driver MongoDB 5.0 API

    • Support per la crittografia a livello di campo lato client ()FLE. Ora puoi crittografare i campi sul lato client prima di scrivere i dati nel cluster Amazon DocumentDB. Per ulteriori informazioni, consulta Crittografia a livello di campo lato client

    • Nuovi operatori di aggregazione:, $dateAdd $dateSubtract

    • Supporti per indici con operatore. $elemMatch Di conseguenza, le interrogazioni eseguite $elemMatch comporteranno scansioni degli indici.

Amazon DocumentDB non supporta tutte le funzionalità di MongoDB 5.0. Quando abbiamo creato Amazon DocumentDB 5.0, abbiamo lavorato a ritroso partendo dalle caratteristiche e dalle funzionalità che i nostri clienti ci chiedevano di sviluppare di più. Continueremo ad aggiungere funzionalità MongoDB 5.0 aggiuntive in base a ciò che i clienti ci chiedono di creare. Per l'elenco più recente di quelle supportateAPIs, consulta. APIsMongoDB, operazioni e tipi di dati supportati in Amazon DocumentDB

Inizia a usare Amazon DocumentDB 5.0

Per iniziare a usare Amazon DocumentDB 5.0, consulta la Guida introduttiva. Puoi creare un nuovo cluster Amazon DocumentDB 5.0 utilizzando AWS Management Console o AWS SDK AWS CLI, o. AWS CloudFormation Quando ci si connette ad Amazon DocumentDB, è necessario utilizzare un driver o un'utilità MongoDB compatibile con MongoDB 5.0 o versioni successive.

Nota

Quando si utilizza, o AWS SDK AWS CLI AWS CloudFormation, la versione predefinita del motore è 5.0.0. È necessario specificare esplicitamente il parametro engineVersion = 4.0.0 per creare un nuovo cluster Amazon DocumentDB 4.0 engineVersion = 3.6.0 o per creare un nuovo cluster Amazon DocumentDB 3.6. Per un determinato cluster Amazon DocumentDB, puoi determinare la versione del cluster utilizzando AWS CLI to call describe-db-clusters o utilizzare la console di gestione Amazon DocumentDB per visualizzare il numero di versione del motore per un determinato cluster.

Amazon DocumentDB 5.0 supporta processori Amazon EC2 Graviton2 come r6g e tipi di t4.medium istanze per i cluster ed è disponibile in tutte le regioni supportate. Per ulteriori informazioni sui prezzi, consulta la pagina dei prezzi di Amazon DocumentDB (con compatibilità con MongoDB).

Aggiornamento o migrazione ad Amazon DocumentDB 4.0

Puoi migrare da MongoDB 3.6 o MongoDB 4.0 ad Amazon DocumentDB 5.0 utilizzando le utilità o come, e. AWS DMSmongodumpmongorestoremongoimportmongoexport Per istruzioni su come effettuare la migrazione, consulta. Aggiornamento del cluster Amazon DocumentDB tramite AWS Database Migration Service

Differenze funzionali

Differenze funzionali tra Amazon DocumentDB 4.0 e 5.0

Con il rilascio di Amazon DocumentDB 5.0, esistono differenze funzionali tra Amazon DocumentDB 3.6 e Amazon DocumentDB 4.0:

  • Il ruolo integrato di backup ora supporta. serverStatus Azione: gli sviluppatori e le applicazioni con ruolo di backup possono raccogliere statistiche sullo stato del cluster Amazon DocumentDB.

  • Il SecondaryDelaySecs campo viene sostituito slaveDelay in replSetGetConfig output.

  • Il hello comando sostituisceisMaster: hello restituisce un documento che descrive il ruolo di un cluster Amazon DocumentDB.

  • Amazon DocumentDB 5.0 ora supporta le scansioni degli indici con l'$elemMatchoperatore nel primo livello di nesting. Le scansioni dell'indice sono supportate quando il solo filtro di interrogazione ha un livello del $elemMatch filtro, ma non sono supportate se è inclusa una query $elemMatch annidata.

    Ad esempio, in Amazon DocumentDB 5.0, se includi l'$elemMatchoperatore nel livello annidato, non restituirà un valore come in 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 proiezione «$» in Amazon DocumentDB 4.0 restituisce tutti i documenti con tutti i campi. Con Amazon DocumentDB 5.0, il find comando con proiezione «$» restituisce documenti che corrispondono al parametro di query contenente solo il campo corrispondente alla proiezione «$».

  • In Amazon DocumentDB 5.0, i find comandi con $regex parametri di $options query restituiscono un errore: «Impossibile impostare le opzioni in entrambi $regex e$options».

  • Con Amazon DocumentDB 5.0, $indexOfCP ora restituisce «-1" quando:

    • la sottostringa non si trova nell'espressione stringa, oppure

    • inizio è un numero maggiore di fine, oppure

    • start è un numero maggiore della lunghezza in byte della stringa.

  • In Amazon DocumentDB 4.0, $indexOfCP restituisce «0" quando la posizione iniziale è un numero maggiore della fine o della lunghezza in byte della stringa.

  • Con Amazon DocumentDB 5.0, le operazioni di proiezione, ad esempio _id fields{"_id.nestedField" : 1}, restituiscono documenti che includono solo il campo proiettato. In Amazon DocumentDB 4.0, invece, i comandi di proiezione di campo annidati non filtrano alcun documento.

Compatibilità con MongoDB 4.0

Caratteristiche di Amazon DocumentDB 4.0

Amazon DocumentDB 4.0 ha introdotto molte nuove caratteristiche e funzionalità che includevano ACID transazioni e miglioramenti per modificare i flussi. Il riepilogo seguente mostra alcune delle principali funzionalità introdotte in Amazon DocumentDB 4.0. Per un elenco completo delle funzionalità, consulta laNote di rilascio.

  • ACIDTransazioni: Amazon DocumentDB ora supporta la possibilità di eseguire transazioni su più documenti, dichiarazioni, raccolte e database. Le transazioni semplificano lo sviluppo di applicazioni consentendoti di eseguire operazioni atomiche, coerenti, isolate e durevoli (ACID) su uno o più documenti all'interno di un cluster Amazon DocumentDB. Per ulteriori informazioni, consulta Transazioni in Amazon DocumentDB.

  • Flussi di modifica: ora hai la possibilità di aprire un flusso di modifiche a livello di cluster (client.watch()omongo.watch()) e di database (db.watch()), puoi specificare un cursore startAtOperationTime per aprire un cursore del flusso di modifiche e infine puoi estendere il periodo di conservazione del flusso di modifiche a 7 giorni (in precedenza 24 ore). Per ulteriori informazioni, consulta Utilizzo dei flussi di modifica con Amazon DocumentDB.

  • AWS Database Migration Service(AWS DMS): Ora puoi utilizzarlo AWS DMS per migrare i tuoi carichi di lavoro MongoDB 4.0 su Amazon DocumentDB. AWS DMS ora supporta una fonte MongoDB 4.0, una destinazione Amazon DocumentDB 4.0 e una fonte Amazon DocumentDB 3.6 per eseguire aggiornamenti tra Amazon DocumentDB 3.6 e 4.0. Per ulteriori informazioni, consulta la documentazione di AWS DMS.

  • Prestazioni e indicizzazione: ora puoi utilizzare un indice con$lookup, trovare query con una proiezione che contengono un campo o un campo e il _id campo può essere servito direttamente dall'indice e senza bisogno di leggere dalla raccolta (interrogazione coperta), la possibilità di eseguire hint() operazioni, ottimizzazioni delle prestazioni e miglioramenti per $addToSet ridurre le dimensioni complessive dell'indice. findAndModify Per ulteriori informazioni, consulta Note di rilascio.

  • Operatori: Amazon DocumentDB 4.0 ora supporta una serie di nuovi operatori di aggregazione:$ifNull,,,, $replaceRoot$setIsSubset,$setInstersection. $setUnion $setEquals Puoi vedere tutti i APIs MongoDB, le operazioni e i tipi di dati che supportiamo su. APIsMongoDB, operazioni e tipi di dati supportati in Amazon DocumentDB

  • Controllo degli accessi basato sui ruoli (RBAC): con entrambi ListDatabase i comandi ListCollection e ora puoi utilizzare facoltativamente i authorizedDatabases parametri authorizedCollections e per consentire agli utenti di elencare le raccolte e i database a cui hanno l'autorizzazione ad accedere senza richiedere rispettivamente i listDatabase ruoli listCollections e. Hai anche la possibilità di eliminare i tuoi cursori senza richiedere il KillCursor ruolo.

Amazon DocumentDB non supporta tutte le funzionalità di MongoDB 4.0. Quando abbiamo creato Amazon DocumentDB 4.0, abbiamo lavorato a ritroso partendo dalle caratteristiche e dalle capacità che i nostri clienti ci chiedevano di sviluppare di più. Continueremo ad aggiungere funzionalità MongoDB 4.0 aggiuntive in base a ciò che i clienti ci chiedono di creare. Ad esempio, Amazon DocumentDB 4.0 attualmente non supporta gli operatori di conversione dei tipi o gli operatori di stringa introdotti in MongoDB 4.0. Per l'elenco più recente di quelli supportatiAPIs, consulta. APIsMongoDB, operazioni e tipi di dati supportati in Amazon DocumentDB

Inizia a usare Amazon DocumentDB 4.0

Per iniziare a usare Amazon DocumentDB 4.0, consulta la Guida introduttiva. Puoi creare un nuovo cluster Amazon DocumentDB 4.0 utilizzando AWS Management Console o AWS SDK AWS CLI, o. AWS CloudFormation Quando ci si connette ad Amazon DocumentDB, è necessario utilizzare un driver o un'utilità MongoDB compatibile con MongoDB 4.0 o versioni successive.

Nota

Quando si utilizza, o AWS SDK AWS CLI AWS CloudFormation, la versione predefinita del motore è 5.0.0. È necessario specificare esplicitamente il parametro engineVersion = 4.0.0 per creare un nuovo cluster Amazon DocumentDB 4.0 engineVersion = 3.6.0 o per creare un nuovo cluster Amazon DocumentDB 3.6. Per un determinato cluster Amazon DocumentDB, puoi determinare la versione del cluster utilizzando AWS CLI to call describe-db-clusters o utilizzare la console di gestione Amazon DocumentDB per visualizzare il numero di versione del motore per un determinato cluster.

Amazon DocumentDB 4.0 supporta r5 e tipi di t4g.medium istanza per i cluster ed è disponibile in tutte le regioni supportate. r6g t3.medium Non sono previsti costi aggiuntivi per l'utilizzo di Amazon DocumentDB 4.0. Per ulteriori informazioni sui prezzi, consulta la pagina dei prezzi di Amazon DocumentDB (con compatibilità con MongoDB).

Aggiornamento o migrazione ad Amazon DocumentDB 4.0

Puoi migrare da MongoDB 3.6 o MongoDB 4.0 ad Amazon DocumentDB 4.0 utilizzando o utilità come, e. AWS DMSmongodumpmongorestoremongoimportmongoexport Allo stesso modo, puoi utilizzare gli stessi strumenti per l'aggiornamento da Amazon DocumentDB 3.6 ad Amazon DocumentDB 4.0. Per istruzioni su come effettuare la migrazione, consulta. Aggiornamento del cluster Amazon DocumentDB tramite AWS Database Migration Service

Differenze funzionali

Differenze funzionali tra Amazon DocumentDB 3.6 e 4.0

Con il rilascio di Amazon DocumentDB 4.0, esistono differenze funzionali tra Amazon DocumentDB 3.6 e Amazon DocumentDB 4.0:

  • Proiezione per documenti nidificati: Amazon DocumentDB 3.6 considera il primo campo di un documento nidificato quando applica una proiezione. Tuttavia, Amazon DocumentDB 4.0 analizzerà i documenti secondari e applicherà la proiezione anche a ciascun documento secondario. Ad esempio: se la proiezione è"a.b.c": 1, il comportamento in entrambe le versioni è identico. Tuttavia, se la proiezione è{a:{b:{c:1}}}, Amazon DocumentDB 3.6 applicherà la proiezione solo a 'a' e non a 'b' o 'c'.

  • Comportamento perminKey, maxKey: In Amazon DocumentDB 4.0, il comportamento for non {x:{$gt:MaxKey}} restituisce nulla e for {x:{$lt:MaxKey}} restituisce tutto.

  • Differenze nel confronto tra documenti: il confronto di valori numerici di diversi tipi (double, int, long) nei documenti secondari (ad esempio, b in{"_id" :1, "a" :{"b":1}}) ora fornisce un output coerente tra i tipi di dati numerici e per ogni livello di un documento.

Differenze funzionali tra Amazon DocumentDB 4.0 e MongoDB 4.0

Di seguito sono riportate le differenze funzionali tra Amazon DocumentDB 4.0 e MongoDB 4.0.

  • Ricerca con chiave vuota nel percorso: quando una raccolta contiene un documento con una chiave vuota all'interno dell'array (ad esempio{"x" : [ { "" : 10 }, { "b" : 20 } ]}) e quando la chiave utilizzata nella query termina con una stringa vuota (ad esempiox.), Amazon DocumentDB restituirà quel documento poiché attraversa tutti i documenti dell'array mentre MongoDB non restituirà quel documento.

  • $setOnInsertinsieme $ al percorso: l'operatore di campo non $setOnInsert funzionerà in combinazione con nel percorso $ in Amazon DocumentDB, che è anche coerente con MongoDB 4.0.