Übersicht

Dokumente sind JSON-Objekte. Dokumente sind auch Container für Ihre Daten und bilden die Basis der IBM® Cloudant® for IBM Cloud®-Datenbank.

Wenn Sie einen IBM Cloudant-Service in IBM Cloud® verwenden, sind Dokumente auf eine maximale Größe von 1 MB begrenzt. Wird dieser Grenzwert überschritten, wird der Fehler „ 413 “ ausgegeben.

IBM Cloudant verwendet ein sukzessive konsistentes Datenmodell. Bei Verwendung des sukzessive konsistenten Modells kann es unter bestimmten Bedingungen vorkommen, dass ältere Dokumentinhalte abgerufen werden. Ältere Inhalte werden zum Beispiel abgerufen, wenn Ihre Anwendung ein Dokument schreibt oder aktualisiert und unmittelbar danach einen Lesevorgang für dieses Dokument durchführt.

Mit anderen Worten: Die Anwendung ruft den Dokumentinhalt ab, der vor dem Schreibvorgang oder der Aktualisierung vorhanden war. Weitere Informationen zu diesem Modell finden Sie im Abschnitt über Konsistenz.

Dokumentfelder

Jedes Dokument muss die beiden folgenden Felder enthalten:

Neben diesen beiden Pflichtfeldern können Dokumente beliebige weitere Inhalte enthalten, die durch JSON-Code beschrieben werden können. Dabei gelten bestimmte Einschränkungen, die in den folgenden Abschnitten erläutert werden.

Dokument-IDs

Das Format einer Dokument-ID hängt davon ab, ob eine partitionierte Datenbank verwendet wird. Bei einer partitionierten Datenbank wird der Partitionsschlüssel als Teil der Dokument-ID definiert, wie im nächsten Abschnitt beschrieben.

IDs in partitionierten Datenbanken

Wenn Sie eine partitionierte Datenbank verwenden, wird in der Dokument-ID sowohl der Partitionsschlüssel als auch der Dokumentschlüssel angegeben. Zum Angeben dieser Schlüssel wird die Dokument-ID durch einen Doppelpunkt in zwei Segmente aufgeteilt:

$PARTITION_KEY:$DOCUMENT_KEY

Der Partitionsschlüssel ($PARTITION_KEY) kann für mehrere Dokumente gleich sein. Der $DOCUMENT_KEY muss innerhalb jeder Partition eindeutig sein. Dies bedeutet, dass die Dokument-ID als Ganzes innerhalb einer Datenbank eindeutig sein muss. Ein Dokumentschlüssel kann gegebenenfalls weitere Doppelpunkte enthalten.

IDs in nicht partitionierten Datenbanken

Bei nicht partitionierten Datenbanken wird das Feld „ _id “ entweder von Ihnen angelegt oder automatisch als UUID von IBM Cloudant generiert.

Wenn Sie das Feld _id mit der Dokument-ID selbst angeben, darf es nicht länger als 7168 Zeichen (7 K) sein.

Die Dokument-ID muss (wie bei partitionierten Datenbanken) innerhalb einer Datenbank eindeutig sein.

Einschränkungen für Feldnamen

Feldnamen, die mit dem Unterstreichungszeichen (_) beginnen, sind für IBM Cloudant reserviert. Dies bedeutet, dass Ihre eigenen Feldnamen normalerweise nicht mit einem Unterstreichungszeichen beginnen dürfen. Beispiel: Der Feldname example ist zulässig, aber der Feldname _example verursacht eine Fehlernachricht des Typs doc_validation.

Im folgenden JSON-Beispieldokument wird versucht, ein Feld mit einem Feldnamen zu erstellen, dem ein Unterstrechungszeichen als Präfix vorangestellt ist:

{
	"_top_level_field_name": "some data"
}

Die folgende Fehlernachricht wird zurückgegeben, wenn Sie versuchen, ein Feld mit einem Feldnamen zu erstellen, der mit einem Unterstrichpräfix beginnt:

{
	"error": "doc_validation",
	"reason": "Bad special document member: _top_level_field_name"
}

Wenn der Feldname jedoch ein verschachteltes Objekt in dem Dokument bezeichnet, können Sie ein Unterstreichungszeichen als Präfix für den Feldnamen verwenden.

Im folgenden JSON-Beispieldokument wird versucht, einen Feldnamen für ein im Dokument verschachteltes Objekt zu erstellen, der ein Unterstrichpräfix enthält:

{
	"another_top_level_field_name": "some data",
	"another_field": {
		"_lower_level_field_name": "some more data"
	}
}

Das folgende Beispiel zeigt eine gekürzte Erfolgsnachricht für die Erstellung eines verschachtelten Felds, dessen Feldname ein Unterstrichpräfix enthält:

{
	"ok": true,
	"id": "2",
	"rev": "1-9ce...8d4"
}

Quorum - Daten schreiben und lesen

In einem verteilten System kann es vorkommen, dass die Ausführung einer Anforderung einige Zeit dauert. Durch ein Quorum-Verfahren wird ermittelt, wann eine Anforderung (z. B. ein Schreib- oder Lesevorgang) erfolgreich abgeschlossen ist.

Weitere Informationen zu Quorum-Einstellungen und deren Auswirkungen auf dedizierte IBM Cloudant-Systeme erhalten Sie vom IBM Cloudant-Support.

Lebensdauer

Die Lebensdauer(Time to Live, TTL) ist eine Eigenschaft von Daten, bei der die Daten nach Ablauf einer relativen Zeitspanne oder zu einem absoluten Zeitpunkt als veraltet gelten. Die Daten selbst werden entweder gelöscht oder an eine andere Position (Archiv) verschoben.

IBM Cloudant unterstützt keine Time-to-Live-Funktionen innerhalb der Datenbank. Kunden könnten diese Funktionalität implementieren, indem sie Dokumente anhand ihres Ablaufzeitstempels mit [Views] indizieren und regelmäßig die Ansicht abfragen, um Dokumente zu finden, die entfernt werden müssen.