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
Argomenti
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 DMSmongodump
mongorestore
mongoimport
mongoexport
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 sostituitoslaveDelay
inreplSetGetConfig
output. -
Il hello comando sostituisce
isMaster
: 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'
$elemMatch
operatore 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'
$elemMatch
operatore 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
Argomenti
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 cursorestartAtOperationTime
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 eseguirehint()
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 comandiListCollection
e ora puoi utilizzare facoltativamente iauthorizedDatabases
parametriauthorizedCollections
e per consentire agli utenti di elencare le raccolte e i database a cui hanno l'autorizzazione ad accedere senza richiedere rispettivamente ilistDatabase
ruolilistCollections
e. Hai anche la possibilità di eliminare i tuoi cursori senza richiedere ilKillCursor
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 DMSmongodump
mongorestore
mongoimport
mongoexport
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 per
minKey
,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. -
$setOnInsert
insieme$
al percorso: l'operatore di campo non$setOnInsert
funzionerà in combinazione con nel percorso$
in Amazon DocumentDB, che è anche coerente con MongoDB 4.0.