Amazon DocumentDB DocumentDB-Kompatibilität mit MongoDB - Amazon DocumentDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Amazon DocumentDB DocumentDB-Kompatibilität mit MongoDB

Amazon DocumentDB unterstützt MongoDB-Kompatibilität, einschließlich MongoDB 4.0 und MongoDB 5.0. MongoDB-Kompatibilität bedeutet, dass die überwiegende Mehrheit der Anwendungen, Treiber und Tools, die Sie heute bereits mit Ihren MongoDB-Datenbanken verwenden, mit Amazon DocumentDB verwendet werden können, ohne oder mit wenigen Änderungen. In diesem Abschnitt wird alles beschrieben, was Sie über die Kompatibilität von Amazon DocumentDB mit MongoDB wissen müssen, darunter neue Funktionen und Funktionen, erste Schritte, Migrationspfade und funktionale Unterschiede.

MongoDB 5.0-Kompatibilität

Was ist neu in Amazon DocumentDB 5.0

Amazon DocumentDB 5.0 bietet neue Funktionen und Fähigkeiten, darunter Speicherbeschränkungen und clientseitige Verschlüsselung auf Feldebene. In der folgenden Zusammenfassung werden einige der wichtigsten Funktionen vorgestellt, die in Amazon DocumentDB 5.0 eingeführt wurden. Eine vollständige Liste der neuen Funktionen finden Sie unterVersionshinweise.

  • Das Speicherlimit wurde für alle instanzbasierten Amazon DocumentDB-Cluster und shard-basierten Elastic-Cluster auf 128 TiB erhöht.

  • Amazon DocumentDB 5.0 Engine (Version 3.0.775) eingeführt

    • Support für MongoDB 5.0 API-Treiber

    • Support für clientseitige Verschlüsselung auf Feldebene (FLE). Sie können jetzt Felder auf der Clientseite verschlüsseln, bevor Sie die Daten in den Amazon DocumentDB-Cluster schreiben. Weitere Informationen finden Sie unter Clientseitige Verschlüsselung auf Feldebene.

    • Neue Aggregationsoperatoren:, $dateAdd $dateSubtract

    • Unterstützt Indizes mit $elemMatch Operator. Das hat zur Folge, $elemMatch dass Abfragen zu Indexscans führen.

Amazon DocumentDB unterstützt nicht jede MongoDB 5.0-Funktion. Bei der Entwicklung von Amazon DocumentDB 5.0 haben wir die Funktionen und Fähigkeiten, nach denen uns unsere Kunden am häufigsten gefragt haben, rückwärts gearbeitet. Wir werden weiterhin zusätzliche MongoDB 5.0-Funktionen hinzufügen, je nachdem, was unsere Kunden von uns erwarten. Die aktuelle Liste der unterstützten APIs Programme finden Sie unterUnterstützte MongoDB APIs, Operationen und Datentypen in Amazon DocumentDB.

Erste Schritte mit Amazon DocumentDB 5.0

Informationen zu den ersten Schritten mit Amazon DocumentDB 5.0 finden Sie im Handbuch Erste Schritte. Sie können einen neuen Amazon DocumentDB 5.0-Cluster mit dem AWS Management Console oder dem AWS SDK, AWS CLI, oder AWS CloudFormation erstellen. Wenn Sie eine Verbindung zu Amazon DocumentDB herstellen, müssen Sie einen MongoDB-Treiber oder ein MongoDB-Tool verwenden, das mit MongoDB 5.0 oder höher kompatibel ist.

Anmerkung

Wenn Sie das AWS SDK oder AWS CloudFormation verwenden AWS CLI, wird die Engine-Version standardmäßig auf 5.0.0 gesetzt. Sie müssen den Parameter explizit angebenengineVersion = 4.0.0, um einen neuen Amazon DocumentDB 4.0-Cluster oder einen neuen Amazon DocumentDB 3.6-Cluster engineVersion = 3.6.0 zu erstellen. Für einen bestimmten Amazon DocumentDB-Cluster können Sie die Cluster-Version ermitteln, indem Sie AWS CLI den aufrufen describe-db-clusters oder die Amazon DocumentDB-Managementkonsole verwenden, um die Engine-Versionsnummer für einen bestimmten Cluster anzuzeigen.

Amazon DocumentDB 5.0 unterstützt Amazon EC2 Graviton2-Prozessoren wie r6g t4.medium Instance-Typen für Ihre Cluster und ist in allen unterstützten Regionen verfügbar. Weitere Informationen zur Preisgestaltung finden Sie unter Amazon DocumentDB (mit MongoDB-Kompatibilität) — Preise.

Upgrade oder Migration auf Amazon DocumentDB 5.0

Sie können von MongoDB 3.6 oder MongoDB 4.0 zu Amazon DocumentDB 5.0 migrieren, indem Sie Dienstprogramme wie mongodump,mongorestore, mongoimport und verwenden. AWS DMSmongoexport Anweisungen zur Migration finden Sie unter. Aktualisieren Ihres Amazon DocumentDB-Clusters mit AWS Database Migration Service

Funktionelle Unterschiede

Funktionale Unterschiede zwischen Amazon DocumentDB 4.0 und 5.0

Mit der Veröffentlichung von Amazon DocumentDB 5.0 gibt es funktionale Unterschiede zwischen Amazon DocumentDB 4.0 und Amazon DocumentDB 5.0:

  • Die integrierte Backup-Rolle unterstützt jetzt. serverStatus Aktion — Entwickler und Anwendungen mit Backup-Rolle können Statistiken über den Status des Amazon DocumentDB-Clusters sammeln.

  • Das SecondaryDelaySecs Feld ersetzt slaveDelay in der replSetGetConfig Ausgabe.

  • Der hello Befehl ersetzt isMasterhello gibt ein Dokument zurück, das die Rolle eines Amazon DocumentDB-Clusters beschreibt.

  • Amazon DocumentDB 5.0 unterstützt jetzt Indexscans mit dem $elemMatch Operator in der ersten Verschachtelungsebene. Indexscans werden unterstützt, wenn der Filter „Nur Abfrage“ eine Filterebene hat, aber nicht unterstützt, wenn eine verschachtelte $elemMatch Abfrage enthalten ist. $elemMatch

    Wenn Sie beispielsweise in Amazon DocumentDB 5.0 den $elemMatch Operator in die verschachtelte Ebene aufnehmen, gibt er keinen Wert zurück, wie dies in Amazon DocumentDB 4.0 der Fall ist:

    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 ] } ] ] }
  • Die Projektion „$“ in Amazon DocumentDB 4.0 gibt alle Dokumente mit allen Feldern zurück. Bei Amazon DocumentDB 5.0 gibt der find Befehl mit einer „$“ -Projektion Dokumente zurück, die dem Abfrageparameter entsprechen und nur das Feld enthalten, das der Projektion „$“ entspricht.

  • In Amazon DocumentDB 5.0 geben die find Befehle mit $regex und $options Abfrageparametern einen Fehler zurück: „Optionen können nicht in beiden $regex und festgelegt werden$options“.

  • Mit Amazon DocumentDB 5.0 wird $indexOfCP jetzt „-1" zurückgegeben, wenn:

    • die Teilzeichenfolge wurde im Zeichenkettenausdruck nicht gefunden, oder

    • Start ist eine Zahl größer als Ende, oder

    • start ist eine Zahl, die größer als die Bytelänge der Zeichenfolge ist.

  • Gibt in Amazon DocumentDB 4.0 „0" $indexOfCP zurück, wenn die Startposition eine Zahl ist, die größer als das Ende oder die Bytelänge der Zeichenfolge ist.

  • Mit Amazon DocumentDB 5.0 geben _id fields Projektionsoperationen beispielsweise Dokumente zurück{"_id.nestedField" : 1}, die nur das projizierte Feld enthalten. In Amazon DocumentDB 4.0 hingegen filtern Befehle zur verschachtelten Feldprojektion kein Dokument heraus.

MongoDB 4.0-Kompatibilität

Funktionen von Amazon DocumentDB 4.0

Amazon DocumentDB 4.0 führte viele neue Funktionen und Fähigkeiten ein, darunter ACID-Transaktionen und Verbesserungen bei Change-Streams. Die folgende Zusammenfassung zeigt einige der wichtigsten Funktionen, die in Amazon DocumentDB 4.0 eingeführt wurden. Eine vollständige Liste der Funktionen finden Sie unterVersionshinweise.

  • ACID-Transaktionen: Amazon DocumentDB unterstützt jetzt die Möglichkeit, Transaktionen über mehrere Dokumente, Kontoauszüge, Sammlungen und Datenbanken hinweg durchzuführen. Transaktionen vereinfachen die Anwendungsentwicklung, indem sie es Ihnen ermöglichen, atomare, konsistente, isolierte und dauerhafte Operationen (ACID) für ein oder mehrere Dokumente innerhalb eines Amazon DocumentDB-Clusters durchzuführen. Weitere Informationen finden Sie unter Transaktionen in Amazon DocumentDB.

  • Streams ändern: Sie haben jetzt die Möglichkeit, einen Change-Stream auf Cluster-Ebene (client.watch()odermongo.watch()) und in der Datenbank (db.watch()) zu öffnen, Sie können einen Cursor angeben, startAtOperationTime um einen Change-Stream zu öffnen, und schließlich können Sie Ihren Change-Stream-Aufbewahrungszeitraum jetzt auf 7 Tage (zuvor 24 Stunden) verlängern. Weitere Informationen finden Sie unter Change-Streams mit Amazon DocumentDB verwenden.

  • AWS Database Migration Service(AWS DMS): Sie können jetzt Ihre MongoDB 4.0-Workloads AWS DMS zu Amazon DocumentDB migrieren. AWS DMS unterstützt jetzt eine MongoDB 4.0-Quelle, ein Amazon DocumentDB 4.0-Ziel und eine Amazon DocumentDB 3.6-Quelle für die Durchführung von Upgrades zwischen Amazon DocumentDB 3.6 und 4.0. Weitere Informationen finden Sie in der AWS DMS Dokumentation.

  • Leistung und Indizierung: Sie können jetzt einen Index verwenden$lookup, Abfragen mit einer Projektion suchen, die ein Feld oder ein Feld enthalten, und das _id Feld kann direkt aus dem Index bereitgestellt werden, ohne dass aus der Sammlung gelesen werden muss (abgedeckte Abfrage), die MöglichkeitfindAndModify, hint() mit, Leistungsoptimierungen für $addToSet und Verbesserungen zur Reduzierung der Gesamtindexgröße. Weitere Informationen finden Sie unter Versionshinweise.

  • Operatoren: Amazon DocumentDB 4.0 unterstützt jetzt eine Reihe neuer Aggregationsoperatoren:$ifNull,,$replaceRoot,, $setIsSubset$setIntersection,$setUnion. $setEquals Sie können alle MongoDB- APIs, Operations- und Datentypen, die wir unterstützen, unter Unterstützte MongoDB APIs, Operationen und Datentypen in Amazon DocumentDB sehen.

  • Rollenbasierte Zugriffskontrolle (RBAC): Bei ListDatabase Befehlen sowohl als auch ListCollection können Sie jetzt optional die authorizedDatabases Parameter authorizedCollections und verwenden, damit Benutzer die Sammlungen und Datenbanken auflisten können, auf die sie zugreifen dürfen, ohne dass die listCollections listDatabase Rollen bzw. Sie haben auch die Möglichkeit, Ihre eigenen Cursor zu beenden, ohne die Rolle zu benötigen. KillCursor

Amazon DocumentDB unterstützt nicht alle MongoDB 4.0-Funktionen. Bei der Entwicklung von Amazon DocumentDB 4.0 haben wir die Funktionen und Fähigkeiten, nach denen uns unsere Kunden am häufigsten gefragt haben, rückwärts gearbeitet. Wir werden weiterhin zusätzliche MongoDB 4.0-Funktionen hinzufügen, je nachdem, was unsere Kunden von uns erwarten. Beispielsweise unterstützt Amazon DocumentDB 4.0 derzeit nicht die Typkonvertierungsoperatoren oder Zeichenkettenoperatoren, die in MongoDB 4.0 eingeführt wurden. Die aktuelle Liste der unterstützten Programme finden Sie APIs unter. Unterstützte MongoDB APIs, Operationen und Datentypen in Amazon DocumentDB

Erste Schritte mit Amazon DocumentDB 4.0

Informationen zu den ersten Schritten mit Amazon DocumentDB 4.0 finden Sie im Handbuch Erste Schritte. Sie können einen neuen Amazon DocumentDB 4.0-Cluster mit dem AWS Management Console oder dem AWS SDK, AWS CLI, oder AWS CloudFormation erstellen. Wenn Sie eine Verbindung zu Amazon DocumentDB herstellen, müssen Sie einen MongoDB-Treiber oder ein MongoDB-Tool verwenden, das mit MongoDB 4.0 oder höher kompatibel ist.

Anmerkung

Wenn Sie das AWS SDK oder AWS CloudFormation verwenden AWS CLI, wird die Engine-Version standardmäßig auf 5.0.0 gesetzt. Sie müssen den Parameter explizit angebenengineVersion = 4.0.0, um einen neuen Amazon DocumentDB 4.0-Cluster oder einen neuen Amazon DocumentDB 3.6-Cluster engineVersion = 3.6.0 zu erstellen. Für einen bestimmten Amazon DocumentDB-Cluster können Sie die Cluster-Version ermitteln, indem Sie AWS CLI den aufrufen describe-db-clusters oder die Amazon DocumentDB-Managementkonsole verwenden, um die Engine-Versionsnummer für einen bestimmten Cluster anzuzeigen.

Amazon DocumentDB 4.0 unterstützt r5r6g,t3.medium, und t4g.medium Instance-Typen für Ihre Cluster und ist in allen unterstützten Regionen verfügbar. Für die Nutzung von Amazon DocumentDB 4.0 fallen keine zusätzlichen Kosten an. Weitere Informationen zur Preisgestaltung finden Sie unter Amazon DocumentDB (mit MongoDB-Kompatibilität) — Preise.

Upgrade oder Migration zu Amazon DocumentDB 4.0

Sie können von MongoDB 3.6 oder MongoDB 4.0 zu Amazon DocumentDB 4.0 migrieren, indem Sie Dienstprogramme wie mongodump,mongorestore, mongoimport und verwenden. AWS DMSmongoexport Ebenso können Sie dieselben Tools für ein Upgrade von Amazon DocumentDB 3.6 auf Amazon DocumentDB 4.0 verwenden. Anweisungen zur Migration finden Sie unter. Aktualisieren Ihres Amazon DocumentDB-Clusters mit AWS Database Migration Service

Funktionelle Unterschiede

Funktionale Unterschiede zwischen Amazon DocumentDB 3.6 und 4.0

Mit der Veröffentlichung von Amazon DocumentDB 4.0 gibt es funktionale Unterschiede zwischen Amazon DocumentDB 3.6 und Amazon DocumentDB 4.0:

  • Projektion für verschachtelte Dokumente: Amazon DocumentDB 3.6 berücksichtigt bei der Anwendung einer Projektion das erste Feld in einem verschachtelten Dokument. Amazon DocumentDB 4.0 analysiert jedoch Unterdokumente und wendet die Projektion auch auf jedes Unterdokument an. Beispiel: Wenn die Projektion ist"a.b.c": 1, dann ist das Verhalten in beiden Versionen identisch. Wenn die Projektion jedoch {a:{b:{c:1}}} so ist, wendet Amazon DocumentDB 3.6 die Projektion nur auf 'a' und nicht auf 'b' oder 'c' an.

  • Verhalten fürminKey, maxKey: In Amazon DocumentDB 4.0 {x:{$gt:MaxKey}} gibt das Verhalten für nichts und für alles {x:{$lt:MaxKey}} zurück.

  • Unterschiede beim Vergleich von Dokumenten: Der Vergleich von numerischen Werten verschiedener Typen (Double, Int, Long) in Unterdokumenten (z. B. b in{"_id" :1, "a" :{"b":1}}) bietet jetzt eine konsistente Ausgabe für alle numerischen Datentypen und für jede Ebene eines Dokuments.

Funktionale Unterschiede zwischen Amazon DocumentDB 4.0 und MongoDB 4.0

Im Folgenden sind die funktionalen Unterschiede zwischen Amazon DocumentDB 4.0 und MongoDB 4.0 aufgeführt.

  • Suche mit leerem Schlüssel im Pfad: Wenn eine Sammlung ein Dokument mit leerem Schlüssel innerhalb des Arrays enthält (z. B.{"x" : [ { "" : 10 }, { "b" : 20 } ]}) und wenn der in der Abfrage verwendete Schlüssel mit einer leeren Zeichenfolge endet (z. B.x.), gibt Amazon DocumentDB dieses Dokument zurück, da es alle Dokumente im Array durchläuft, während MongoDB dieses Dokument nicht zurückgibt.

  • $setOnInsertzusammen mit $ im Pfad: Der Feldoperator $setOnInsert funktioniert nicht in Kombination mit $ im Pfad in Amazon DocumentDB, was auch mit MongoDB 4.0 konsistent ist.