Verwenden von MongoDB-Erweiterungsbefehlen zum Verwalten von Daten in Azure Cosmos DB for MongoDB

GILT FÜR: MongoDB

Das folgende Dokument enthält die benutzerdefinierten Aktionsbefehle, die für Azure Cosmos DB for MongoDB spezifisch sind. Diese Befehle können zum Erstellen und Abrufen von Datenbankressourcen verwendet werden, die für das Azure Cosmos DB-Kapazitätsmodell spezifisch sind.

Durch die Verwendung von Azure Cosmos DB for MongoDB können Sie die gemeinsamen Nutzen von Azure Cosmos DB genießen. Zu diesen Nutzen gehören unter anderem:

  • Globale Verteilung
  • Automatisches horizontales Partitionieren
  • Hohe Verfügbarkeit
  • Wartezeitgarantien
  • Verschlüsselung ruhender Daten
  • Backups

Sie können diese Nutzen genießen und gleichzeitig Ihre Investitionen in Ihre vorhandene MongoDB-Anwendung[en] beibehalten. Sie können mit der Azure Cosmos DB for MongoDB mittels einem der Open-Source-MongoDB-Clienttreiber kommunizieren. Die Azure Cosmos DB for MongoDB ermöglicht die Verwendung vorhandener Clienttreiber, indem das MongoDB-Leitungsprotokoll eingehalten wird.

Protokollunterstützung für MongoDB

Azure Cosmos DB for MongoDB ist mit der MongoDB-Serverversion 4.0, 3.6 und 3.2 kompatibel. Weitere Informationen finden Sie unter „Unterstützte Features und Syntax“ in den Versionen 4.0, 3.6 und 3.2.

Die folgenden Erweiterungsbefehle erstellen und ändern Azure Cosmos DB-spezifische Ressourcen über Datenbankanforderungen:

Erstellen einer Datenbank

Mit dem Erweiterungsbefehl „CreateDatabase“ wird eine neue MongoDB-Datenbank erstellt. Der Name der Datenbank kann aus dem Datenbankkontext abgerufen verwendet, der mit dem Befehl use database festgelegt wird. In der folgenden Tabelle sind die Parameter des Befehls beschrieben:

Feld type BESCHREIBUNG
customAction string Der Name des benutzerdefinierten Befehls. Der Wert muss CreateDatabase sein.
offerThroughput int Bereitgestellter Durchsatz, den Sie für die Datenbank festgelegt haben. Dieser Parameter ist optional.
autoScaleSettings Object Für Modus „Autoskalierung“ erforderlich. Dieses Objekt enthält die mit dem Kapazitätsmodus „Autoskalierung“ festgelegten Einstellungen. Sie können den Wert maxThroughput einrichten, der die höchste Anzahl von Anforderungseinheiten angibt, auf welche die Sammlung dynamisch erhöht werden kann.

Ausgabe

Wenn der Befehl erfolgreich ist, gibt er die folgende Antwort zurück:

{ "ok" : 1 }

Informationen hierzu finden Sie in der Standardausgabe des benutzerdefinierten Befehls für die Parameter in der Ausgabe.

Beispiel: Erstellen einer Datenbank

Um eine Datenbank mit dem Namen "test" mit sämtlichen Standardwerten zu erstellen, verwenden Sie den folgenden Befehl:

use test
db.runCommand({customAction: "CreateDatabase"});

Dieser Befehl erstellt eine Datenbank ohne Durchsatz auf Datenbankebene. Dieser Vorgang bedeutet, dass die Sammlungen innerhalb dieser Datenbank die Menge an Durchsatz angeben müssen, den Sie benötigen.

Beispiel: Erstellen einer Datenbank mit Durchsatz

Um eine Datenbank mit dem Namen "test" zu erstellen und einen auf Datenbankebene bereitgestellten Durchsatz von 1.000 RUs anzugeben, nutzen Sie den folgenden Befehl:

use test
db.runCommand({customAction: "CreateDatabase", offerThroughput: 1000 });

Dieser Befehl erstellt eine Datenbank und legt einen Durchsatz dafür fest. Alle Sammlungen innerhalb dieser Datenbank teilen sich den festgelegten Durchsatz, es sei denn, die Sammlungen werden mit einer bestimmten Durchsatzebene erstellt.

Beispiel: Erstellen einer Datenbank mit auf „Autoskalierung“ festgelegtem Durchsatz

Um eine Datenbank mit dem Namen "test" zu erstellen und einen per Autoskalierung festgelegten maximalen Durchsatz von 20.000 RU/s auf Datenbankebene anzugeben, verwenden Sie den folgenden Befehl:

use test
db.runCommand({customAction: "CreateDatabase", autoScaleSettings: { maxThroughput: 20000 } });

Aktualisieren der Datenbank

Mit dem Erweiterungsbefehl „UpdateDatabase“ werden die Eigenschaften aktualisiert, die der angegebenen Datenbank zugeordnet sind. Das Ändern der Datenbank von bereitgestelltem Durchsatz zur Autoskalierung und umgekehrt wird nur im Azure-Portal unterstützt. In der folgenden Tabelle sind die Parameter des Befehls beschrieben:

Feld type BESCHREIBUNG
customAction string Der Name des benutzerdefinierten Befehls. Der Wert muss UpdateDatabase sein.
offerThroughput int Neuer bereitgestellter Durchsatz, den Sie für die Datenbank festlegen möchten, wenn die Datenbank Durchsatz auf Datenbankebene nutzt
autoScaleSettings Object Für Modus „Autoskalierung“ erforderlich. Dieses Objekt enthält die mit dem Kapazitätsmodus „Autoskalierung“ festgelegten Einstellungen. Sie können den Wert maxThroughput einrichten, der die höchste Anzahl von Anforderungseinheiten angibt, auf welche die Datenbank dynamisch erhöht werden kann.

Dieser Befehl verwendet die im Kontext der Sitzung angegebene Datenbank. Dies ist die gleiche Datenbank, die Sie im Befehl use <database> verwendet haben. Momentan kann der Datenbankname mit diesem Befehl nicht geändert werden.

Ausgabe

Wenn der Befehl erfolgreich ist, gibt er die folgende Antwort zurück:

{ "ok" : 1 }

Informationen hierzu finden Sie in der Standardausgabe des benutzerdefinierten Befehls für die Parameter in der Ausgabe.

Beispiel: Aktualisieren des bereitgestellten Durchsatzes, der einer Datenbank zugeordnet ist

Verwenden Sie den folgenden Befehl, um den bereitgestellten Durchsatz einer Datenbank mit dem Namen "test" auf 1.200 RUs zu aktualisieren:

use test
db.runCommand({customAction: "UpdateDatabase", offerThroughput: 1200 });

Beispiel: Aktualisieren des Durchsatzes für Autoskalierung, der einer Datenbank zugeordnet ist

Um den bereitgestellten Durchsatz einer Datenbank namens "test" auf 20.000 RUs zu aktualisieren oder in eine Durchsatzebene mit Autoskalierung umzuwandeln, nutzen Sie den folgenden Befehl:

use test
db.runCommand({customAction: "UpdateDatabase", autoScaleSettings: { maxThroughput: 20000 } });

Abrufen der Datenbank

Mit dem Erweiterungsbefehl „GetDatabase“ wird das Datenbankobjekt zurückgegeben. Der Name der Datenbank wird aus dem Datenbankkontext abgerufen, unter dem der Befehl ausgeführt wird.

{
  customAction: "GetDatabase"
}

In der folgenden Tabelle sind die Parameter des Befehls beschrieben:

Feld type BESCHREIBUNG
customAction string Der Name des benutzerdefinierten Befehls. Der Wert muss GetDatabase sein.

Ausgabe

Wenn der Befehl erfolgreich ist, enthält die Antwort ein Dokument mit den folgenden Feldern:

Feld type BESCHREIBUNG
ok int Status der Antwort. 1 == Erfolgreich. 0 == Fehler.
database string Der Name der Datenbank.
provisionedThroughput int Bereitgestellter Durchsatz, den Sie für die Datenbank festlegen möchten, wenn die Datenbank manuellen Durchsatz auf Datenbankebene nutzt
autoScaleSettings Object Dieses Objekt enthält die Kapazitätsparameter, die der Datenbank zugeordnet sind, wenn der Autoskalierungsmodus verwendet wird. Der Wert maxThroughput beschreibt die höchste Anzahl von Anforderungseinheiten, auf welche die Datenbank dynamisch erhöht werden kann.

Wenn der Befehl nicht erfolgreich ist, wird eine Standardantwort für den benutzerdefinierten Befehl zurückgegeben. Informationen hierzu finden Sie in der Standardausgabe des benutzerdefinierten Befehls für die Parameter in der Ausgabe.

Beispiel: Abrufen der Datenbank

Verwenden Sie den folgenden Befehl, um das Datenbankobjekt für eine Datenbank mit dem Namen "test" abzurufen:

use test
db.runCommand({customAction: "GetDatabase"});

Wenn der Datenbank kein Durchsatz zugeordnet ist, lautet die Ausgabe wie folgt:

{ "database" : "test", "ok" : 1 }

Wenn der Datenbank ein manueller Durchsatz auf Datenbankebene zugeordnet ist, weist die Ausgabe diese provisionedThroughput-Werte auf:

{ "database" : "test", "provisionedThroughput" : 20000, "ok" : 1 }

Wenn der Datenbank ein per Autoskalierung festgelegter Durchsatz auf Datenbankebene zugeordnet ist, enthält die Ausgabe provisionedThroughput mit Angabe der minimalen RU/s für die Datenbank und autoScaleSettings einschließlich maxThroughput mit der Angabe der maximalen RU/s für die Datenbank.

{
        "database" : "test",
        "provisionedThroughput" : 2000,
        "autoScaleSettings" : {
                "maxThroughput" : 20000
        },
        "ok" : 1
}

Erstellen der Sammlung

Mit dem Erweiterungsbefehl „CreateCollection“ wird eine neue MongoDB-Sammlung erstellt. Der Name der Datenbank wird aus dem Datenbankkontext abgerufen, der mit dem Befehl use database festgelegt wird. Das Format des Befehls „CreateCollection“ lautet:

{
  customAction: "CreateCollection",
  collection: "<Collection Name>",
  shardKey: "<Shard key path>",
  // Replace the line below with "autoScaleSettings: { maxThroughput: (int) }" to use Autoscale instead of Provisioned Throughput. Fill the required Autoscale max throughput setting.
  offerThroughput: (int) // Provisioned Throughput enabled with required throughput amount set.
  indexes: [{key: {_id: 1}, name: "_id_1"}, ... ] // Optional indexes (3.6+ accounts only).
}

In der folgenden Tabelle sind die Parameter des Befehls beschrieben:

Feld type Erforderlich BESCHREIBUNG
customAction string Erforderlich Der Name des benutzerdefinierten Befehls. Der Wert muss CreateCollection sein.
collection string Erforderlich Name der Sammlung Sonder- oder Leerzeichen sind unzulässig.
offerThroughput int Optional Bereitgestellter Durchsatz, der für die Datenbank festgelegt werden soll. Wenn dieser Parameter nicht angegeben wird, wird standardmäßig der Mindestwert von 400 RU/s verwendet. *Um einen Durchsatz über 10.000 RU/s hinaus anzugeben, ist der Parameter shardKey erforderlich.
shardKey string Für Sammlungen mit hohem Durchsatz erforderlich Der Pfad des Shardschlüssels für die horizontal partitionierte Sammlung. Dieser Parameter ist erforderlich, wenn Sie mehr als 10.000 RU/s in offerThroughput festlegen. Falls er angegeben ist, erfordern alle eingefügten Dokumente diesen Schlüssel und Wert.
autoScaleSettings Object Für Modus „Autoskalierung“ erforderlich. Dieses Objekt enthält die mit dem Kapazitätsmodus „Autoskalierung“ festgelegten Einstellungen. Sie können den Wert maxThroughput einrichten, der die höchste Anzahl von Anforderungseinheiten beschreibt, auf welche die Sammlung dynamisch erhöht werden kann.
indexes Array Konfigurieren Sie optional Indizes. Dieser Parameter wird nur für Konten ab Version 3.6 unterstützt. Sofern vorhanden, wird ein Index für _id benötigt. Jeder Eintrag im Array muss einen Schlüssel aus einem oder mehreren Feldern, einen Namen und optional Indexoptionen enthalten. Verwenden Sie beispielsweise diesen Eintrag, um einen zusammengesetzten eindeutigen Index für die Felder a und b zu erstellen: {key: {a: 1, b: 1}, name:"a_1_b_1", unique: true}.

Output

Gibt eine Standardantwort für den benutzerdefinierten Befehl zurück. Informationen hierzu finden Sie in der Standardausgabe des benutzerdefinierten Befehls für die Parameter in der Ausgabe.

Beispiel: Erstellen einer Sammlung mit der Mindestkonfiguration

Um eine neue Sammlung mit dem Namen "testCollection" und den Standardwerten zu erstellen, geben Sie den folgenden Befehl an:

use test
db.runCommand({customAction: "CreateCollection", collection: "testCollection"});

Das Ergebnis ist eine neue feste Sammlung ohne horizontale Partitionierung mit 400 RU/s und einem automatisch erstellten Index für das Feld _id. Diese Art der Konfiguration gilt auch bei der Erstellung neuer Sammlungen über die Funktion insert(). Zum Beispiel:

use test
db.newCollection.insert({});

Beispiel: Erstellen einer Sammlung ohne horizontale Partitionierung

Um eine Sammlung ohne horizontale Partitionierung mit dem Namen "testCollection" und einem bereitgestellten Durchsatz von 1000 RUs zu erstellen, verwenden Sie den folgenden Befehl:

use test
db.runCommand({customAction: "CreateCollection", collection: "testCollection", offerThroughput: 1000});

Sie können eine Sammlung mit bis zu 10.000 RU/s als offerThroughput erstellen, ohne einen Shardschlüssel angeben zu müssen. Weitere Informationen zu Sammlungen mit größerem Durchsatz finden Sie im nächsten Abschnitt.

Beispiel: Erstellen einer Sammlung mit horizontaler Partitionierung

Verwenden Sie den folgenden Befehl, um eine Sammlung mit Shards mit dem Namen "testCollection", einem bereitgestellten Durchsatz von 11.000 RU/s und der shardkey-Eigenschaft „a.b“ zu erstellen:

use test
db.runCommand({customAction: "CreateCollection", collection: "testCollection", offerThroughput: 11000, shardKey: "a.b" });

Dieser Befehl erfordert jetzt den Parameter shardKey, da mehr als 10.000 RU/s in offerThroughput angegeben sind.

Beispiel: Erstellen einer Sammlung mit Autoskalierung ohne horizontale Partitionierung

Um eine Sammlung ohne Shards namens 'testCollection' zu erstellen, deren Durchsatzkapazität per Autoskalierung auf 4.000 RU/s festgelegt ist, verwenden Sie den folgenden Befehl:

use test
db.runCommand({ 
    customAction: "CreateCollection", collection: "testCollection", 
    autoScaleSettings:{
      maxThroughput: 4000
    } 
});

Für den Wert autoScaleSettings.maxThroughput können Sie einen Bereich von 4.000 bis 10 000 RU/s ohne Datenbank-Shard-Schlüssel angeben. Für einen höheren Durchsatz bei der Autoskalierung müssen Sie den Parameter shardKey angeben.

Beispiel: Erstellen einer Sammlung mit Autoskalierung mit horizontaler Partitionierung

Um eine Sammlung mit Shards namens 'testCollection' mit dem Shardschlüssel 'a.b' zu erstellen, deren Durchsatzkapazität per Autoskalierung auf 20.000 RU/s festgelegt ist, verwenden Sie den folgenden Befehl:

use test
db.runCommand({customAction: "CreateCollection", collection: "testCollection", shardKey: "a.b", autoScaleSettings: { maxThroughput: 20000 }});

Aktualisieren der Sammlung

Mit dem Erweiterungsbefehl „UpdateCollection“ werden die Eigenschaften aktualisiert, die der angegebenen Sammlung zugeordnet sind. Das Ändern der Sammlung von bereitgestelltem Durchsatz zur Autoskalierung und umgekehrt wird nur im Azure-Portal unterstützt.

{
  customAction: "UpdateCollection",
  collection: "<Name of the collection that you want to update>",
  // Replace the line below with "autoScaleSettings: { maxThroughput: (int) }" if using Autoscale instead of Provisioned Throughput. Fill the required Autoscale max throughput setting. Changing between Autoscale and Provisioned throughput is only supported in the Azure Portal.
  offerThroughput: (int) // Provisioned Throughput enabled with required throughput amount set.
  indexes: [{key: {_id: 1}, name: "_id_1"}, ... ] // Optional indexes (3.6+ accounts only).
}

In der folgenden Tabelle sind die Parameter des Befehls beschrieben:

Feld type BESCHREIBUNG
customAction string Der Name des benutzerdefinierten Befehls. Der Wert muss UpdateCollection sein.
collection string Name der Sammlung
offerThroughput int Bereitgestellter Durchsatz, der für die Sammlung festgelegt wird.
autoScaleSettings Object Für Modus „Autoskalierung“ erforderlich. Dieses Objekt enthält die mit dem Kapazitätsmodus „Autoskalierung“ festgelegten Einstellungen. Der Wert maxThroughput beschreibt die höchste Anzahl von Anforderungseinheiten, auf welche die Sammlung dynamisch erhöht werden kann.
indexes Array Konfigurieren Sie optional Indizes. Dieser Parameter wird nur für Konten ab Version 3.6 unterstützt. Wenn vorhanden, ersetzt der angegebene Satz von Indizes (einschließlich Löschindizes) die vorhandenen Indizes der Auflistung. Es wird ein Index für _id benötigt. Jeder Eintrag im Array muss einen Schlüssel aus einem oder mehreren Feldern, einen Namen und optional Indexoptionen enthalten. Verwenden Sie beispielsweise diesen Eintrag, um einen zusammengesetzten eindeutigen Index für die Felder a und b zu erstellen: {key: {a: 1, b: 1}, name: "a_1_b_1", unique: true}.

Ausgabe

Gibt eine Standardantwort für den benutzerdefinierten Befehl zurück. Informationen hierzu finden Sie in der Standardausgabe des benutzerdefinierten Befehls für die Parameter in der Ausgabe.

Beispiel: Aktualisieren des bereitgestellten Durchsatzes, der einer Sammlung zugeordnet ist

Verwenden Sie den folgenden Befehl, um den bereitgestellten Durchsatz einer Sammlung mit dem Namen "testCollection" auf 1.200 RU/s zu aktualisieren:

use test
db.runCommand({customAction: "UpdateCollection", collection: "testCollection", offerThroughput: 1200 });

Abrufen der Sammlung

Mit dem benutzerdefinierten Befehl „GetCollection“ wird das Sammlungsobjekt zurückgegeben.

{
  customAction: "GetCollection",
  collection: "<Name of the collection>"
}

In der folgenden Tabelle sind die Parameter des Befehls beschrieben:

Feld type BESCHREIBUNG
customAction string Der Name des benutzerdefinierten Befehls. Der Wert muss GetCollection sein.
collection string Name der Sammlung

Ausgabe

Wenn der Befehl erfolgreich ist, enthält die Antwort ein Dokument mit den folgenden Feldern:

Feld type BESCHREIBUNG
ok int Status der Antwort. 1 == Erfolgreich. 0 == Fehler.
database string Der Name der Datenbank.
collection string Name der Sammlung
shardKeyDefinition document Dokument mit Indexspezifikation zur Verwendung als Shardschlüssel. Dieses Feld ist ein optionaler Antwortparameter.
provisionedThroughput int Bereitgestellter Durchsatz, der für die Sammlung festgelegt werden soll. Dieses Feld ist ein optionaler Antwortparameter.
autoScaleSettings Object Dieses Objekt enthält die Kapazitätsparameter, die der Datenbank zugeordnet sind, wenn der Autoskalierungsmodus verwendet wird. Der Wert maxThroughput beschreibt die höchste Anzahl von Anforderungseinheiten, auf welche die Sammlung dynamisch erhöht werden kann.

Wenn der Befehl nicht erfolgreich ist, wird eine Standardantwort für den benutzerdefinierten Befehl zurückgegeben. Informationen hierzu finden Sie in der Standardausgabe des benutzerdefinierten Befehls für die Parameter in der Ausgabe.

Beispiel: Abrufen der Sammlung

Verwenden Sie den folgenden Befehl, um das Sammlungsobjekt für eine Sammlung mit dem Namen "testCollection" abzurufen:

use test
db.runCommand({customAction: "GetCollection", collection: "testCollection"});

Wenn der Sammlung eine Durchsatzkapazität zugeordnet ist, enthält sie den Wert provisionedThroughput, und die Ausgabe wäre wie folgt:

{
        "database" : "test",
        "collection" : "testCollection",
        "provisionedThroughput" : 400,
        "ok" : 1
}

Wenn die Sammlung einen per Autoskalierung zugewiesenen Durchsatz hat, enthält sie das Objekt autoScaleSettings mit dem Parameter maxThroughput, der den maximalen Durchsatz definiert, auf den die Sammlung dynamisch erhöht wird. Zusätzlich enthält sie auch den Wert provisionedThroughput, der den Mindestdurchsatz bestimmt, auf den diese Sammlung reduziert wird, wenn keine Anforderungen in der Sammlung vorhanden sind:

{
        "database" : "test",
        "collection" : "testCollection",
        "provisionedThroughput" : 1000,
        "autoScaleSettings" : {
            "maxThroughput" : 10000
        },
        "ok" : 1
}

Wenn die Sammlung einen Durchsatz auf Datenbankebene gemeinsam nutzt, entweder im Modus „Autoskalierung“ oder manuell, lautet die Ausgabe so:

{ "database" : "test", "collection" : "testCollection", "ok" : 1 }
{
        "database" : "test",
        "provisionedThroughput" : 2000,
        "autoScaleSettings" : {
            "maxThroughput" : 20000
        },
        "ok" : 1
}

Parallelisieren von Änderungsdatenströmen

Wenn Sie Änderungsdatenströme im großen Stil verwenden, ist es am besten, die Last gleichmäßig zu verteilen. Der folgende Befehl gibt mindestens ein Token zum Fortsetzen des Änderungsdatenstroms zurück – jedes Token entspricht den Daten aus einem einzelnen physischen Datenbank-Shard/einer einzelnen Partition (es können mehrere logische Datenbank-Shards/Partitionen auf einer physischen Partition vorhanden sein). Jedes Fortsetzungstoken führt dazu, dass watch() nur Daten von diesem physischen Datenbank-Shard/dieser Partition zurückgibt.

Verwenden Sie db.collection.watch() für jedes Fortsetzungstoken (ein Thread pro Token), um Änderungsdatenströme effizient zu skalieren.

{
        customAction: "GetChangeStreamTokens", 
        collection: "<Name of the collection>", 
        startAtOperationTime: "<BSON Timestamp>" // Optional. Defaults to the time the command is run.
} 

Beispiel: Abrufen des Streamtokens

Führen Sie den benutzerdefinierten Befehl aus, um ein Fortsetzungstoken für jeden physischen Shard/jede physische Partition abzurufen.

use test
db.runCommand({customAction: "GetChangeStreamTokens", collection: "<Name of the collection>"})

Führen Sie einen watch()-Thread oder -Prozess für jedes Fortsetzungstoken aus, das vom benutzerdefinierten GetChangeStreamTokens-Befehl zurückgegeben wird. Hier ist ein Beispiel für einen Thread.

db.test_coll.watch([{ $match: { "operationType": { $in: ["insert", "update", "replace"] } } }, { $project: { "_id": 1, "fullDocument": 1, "ns": 1, "documentKey": 1 } }], 
{fullDocument: "updateLookup", 
resumeAfter: { "_data" : BinData(0,"eyJWIjoyLCJSaWQiOiJQeFVhQUxuMFNLRT0iLCJDb250aW51YXRpb24iOlt7IkZlZWRSYW5nZSI6eyJ0eXBlIjoiRWZmZWN0aXZlIFBhcnRpdGlvbiBLZXkgUmFuZ2UiLCJ2YWx1ZSI6eyJtaW4iOiIiLCJtYXgiOiJGRiJ9fSwiU3RhdGUiOnsidHlwZSI6ImNvbnRpbndkFLbiIsInZhbHVlIjoiXCIxODQ0XCIifX1dfQ=="), "_kind" : NumberInt(1)}})

Das Dokument (der Wert) im Feld „resumeAfter“ stellt das Fortsetzungstoken dar. Der Befehl watch() gibt einen Cursor für alle Dokumente zurück, die seit der Ausführung des benutzerdefinierten GetChangeStreamTokens-Befehls für diese physische Partition eingefügt, aktualisiert oder ersetzt wurden. Ein Beispiel der zurückgegebenen Daten ist hier enthalten.

{
  "_id": {
    "_data": BinData(0,
    "eyJWIjoyLCJSaWQiOiJQeFVhQUxuMFNLRT0iLCJDfdsfdsfdsft7IkZlZWRSYW5nZSI6eyJ0eXBlIjoiRWZmZWN0aXZlIFBhcnRpdGlvbiBLZXkgUmFuZ2UiLCJ2YWx1ZSI6eyJtaW4iOiIiLCJtYXgiOiJGRiJ9fSwiU3RhdGUiOnsidHlwZSI6ImNvbnRpbnVhdGlvbiIsInZhbHVlIjoiXCIxOTgwXCIifX1dfQ=="),
    "_kind": 1
  },
  "fullDocument": {
    "_id": ObjectId("60da41ec9d1065b9f3b238fc"),
    "name": John,
    "age": 6
  },
  "ns": {
    "db": "test-db",
    "coll": "test_coll"
  },
  "documentKey": {
    "_id": ObjectId("60da41ec9d1065b9f3b238fc")
  }
}

Jedes zurückgegebene Dokument enthält ein Fortsetzungstoken (diese sind für jede Seite identisch). Dieses Fortsetzungstoken sollte gespeichert und wiederverwendet werden, wenn der Thread/Prozess vorzeitig beendet wird. Dieses Fortsetzungstoken setzt den Vorgang an der Stelle fort, an der er unterbrochen wurde, und empfängt nur Daten von dieser physischen Partition.

Standardausgabe eines benutzerdefinierten Befehls

Wenn nichts anderes angegeben ist, enthält eine benutzerdefinierte Antwort ein Dokument mit den folgenden Feldern:

Feld type BESCHREIBUNG
ok int Status der Antwort. 1 == Erfolgreich. 0 == Fehler.
code int Wird nur zurückgegeben, wenn der Befehl nicht erfolgreich ist (d. h. ok == 0). Enthält den MongoDB-Fehlercode. Dieses Feld ist ein optionaler Antwortparameter.
errMsg string Wird nur zurückgegeben, wenn der Befehl nicht erfolgreich ist (d. h. ok == 0). Enthält eine benutzerfreundliche Fehlermeldung. Dieses Feld ist ein optionaler Antwortparameter.

Beispiel:

{ "ok" : 1 }

Nächste Schritte

Sie können sich nun über die folgenden Azure Cosmos DB-Konzepte informieren: