Write

Schreibvorgang für ein Dokument.

JSON-Darstellung
{
  "updateMask": {
    object (DocumentMask)
  },
  "updateTransforms": [
    {
      object (FieldTransform)
    }
  ],
  "currentDocument": {
    object (Precondition)
  },

  // Union field operation can be only one of the following:
  "update": {
    object (Document)
  },
  "delete": string,
  "transform": {
    object (DocumentTransform)
  }
  // End of list of possible types for union field operation.
}
Felder
updateMask

object (DocumentMask)

Die Felder, die in diesem Schreibvorgang aktualisiert werden sollen.

Dieses Feld kann nur festgelegt werden, wenn der Vorgang update ist. Wenn die Maske nicht für update festgelegt ist und das Dokument vorhanden ist, werden alle vorhandenen Daten überschrieben. Wenn die Maske festgelegt ist und das Dokument auf dem Server Felder enthält, die nicht von der Maske abgedeckt sind, bleiben diese unverändert. Felder, auf die in der Maske verwiesen wird, die im Eingabedokument aber nicht vorhanden sind, werden auf dem Server aus dem Dokument gelöscht. Die Feldpfade in dieser Maske dürfen keinen reservierten Feldnamen enthalten.

updateTransforms[]

object (FieldTransform)

Die Transformationen, die nach der Aktualisierung ausgeführt werden sollen.

Dieses Feld kann nur festgelegt werden, wenn der Vorgang update ist. Falls vorhanden, entspricht dieser Schreibvorgang der Ausführung von update und transform im selben Dokument in kleinstmöglicher Reihenfolge.

currentDocument

object (Precondition)

Eine optionale Vorbedingung für das Dokument.

Der Schreibvorgang schlägt fehl, wenn dies festgelegt und vom Zieldokument nicht erfüllt wird.

Union-Feld operation. Der auszuführende Vorgang. Für operation ist nur einer der folgenden Werte zulässig:
update

object (Document)

Ein zu schreibendes Dokument.

delete

string

Der Name des zu löschenden Dokuments. Im Format: projects/{projectId}/databases/{databaseId}/documents/{document_path}.

transform

object (DocumentTransform)

Wendet eine Transformation auf ein Dokument an.

DocumentTransform

Die Transformation eines Dokuments.

JSON-Darstellung
{
  "document": string,
  "fieldTransforms": [
    {
      object (FieldTransform)
    }
  ]
}
Felder
document

string

Der Name des zu transformierenden Dokuments.

fieldTransforms[]

object (FieldTransform)

Die Liste der Transformationen, die in der angegebenen Reihenfolge auf die Felder des Dokuments angewendet werden sollen. Dieses Feld darf nicht leer sein.

FieldTransform

Eine Transformation eines Felds des Dokuments.

JSON-Darstellung
{
  "fieldPath": string,

  // Union field transform_type can be only one of the following:
  "setToServerValue": enum (ServerValue),
  "increment": {
    object (Value)
  },
  "maximum": {
    object (Value)
  },
  "minimum": {
    object (Value)
  },
  "appendMissingElements": {
    object (ArrayValue)
  },
  "removeAllFromArray": {
    object (ArrayValue)
  }
  // End of list of possible types for union field transform_type.
}
Felder
fieldPath

string

Der Pfad des Felds. Die Syntaxreferenz für Feldpfade finden Sie unter Document.fields.

Union-Feld transform_type. Die Transformation, die auf das Feld angewendet werden soll. Für transform_type ist nur einer der folgenden Werte zulässig:
setToServerValue

enum (ServerValue)

Setzt das Feld auf den angegebenen Serverwert.

increment

object (Value)

Fügt den angegebenen Wert zum aktuellen Wert des Felds hinzu.

Dies muss eine Ganzzahl oder ein doppelter Wert sein. Wenn das Feld keine Ganzzahl oder kein Double-Wert ist oder das Feld noch nicht vorhanden ist, wird das Feld von der Transformation auf den angegebenen Wert festgelegt. Wenn einer der angegebenen Werte oder der aktuelle Feldwert doppelt vorhanden ist, werden beide Werte als Double-Werten interpretiert. Die Doppelarithmetik und die Darstellung von Doppelwerten folgen der IEEE 754-Semantik. Bei einem Überlauf der positiven/negativen Ganzzahlen wird das Feld in die höchste positive/negative Ganzzahl aufgelöst.

maximum

object (Value)

Legt das Feld auf das Maximum des aktuellen und angegebenen Werts fest.

Dies muss eine Ganzzahl oder ein doppelter Wert sein. Wenn das Feld keine Ganzzahl oder kein Double-Wert ist oder das Feld noch nicht vorhanden ist, wird das Feld von der Transformation auf den angegebenen Wert festgelegt. Wenn eine Maximal-Operation angewendet wird, bei der das Feld und der Eingabewert gemischte Typen haben (eins ist eine Ganzzahl und der andere ein Double-Wert), übernimmt das Feld den Typ des größeren Operanden. Wenn die Operanden äquivalent sind (z. B. 3 und 3,0), bleibt das Feld unverändert. 0, 0,0 und -0,0 sind alle Null. Der Höchstwert aus einem gespeicherten Wert von null und einem Eingabewert von null ist immer der gespeicherte Wert. Das Maximum eines beliebigen numerischen Werts x und NaN ist NaN.

minimum

object (Value)

Legt das Feld auf den Mindestwert des aktuellen und des angegebenen Werts fest.

Dies muss eine Ganzzahl oder ein doppelter Wert sein. Wenn das Feld keine Ganzzahl oder kein Double-Wert ist oder das Feld noch nicht vorhanden ist, wird das Feld von der Transformation auf den Eingabewert festgelegt. Wenn eine Operation mit Minimum angewendet wird, bei der das Feld und der Eingabewert gemischte Typen haben (eins ist eine Ganzzahl und der andere ein Double-Wert), übernimmt das Feld den Typ des kleineren Operanden. Wenn die Operanden äquivalent sind (z. B. 3 und 3,0), bleibt das Feld unverändert. 0, 0,0 und -0,0 sind alle Null. Der Mindestwert eines gespeicherten Werts von null und eines Eingabewerts von null ist immer der gespeicherte Wert. Das Minimum aller numerischen Werte x und NaN ist NaN.

appendMissingElements

object (ArrayValue)

Hängen Sie die Elemente der Reihe nach an, wenn sie nicht bereits im aktuellen Feldwert vorhanden sind. Wenn das Feld kein Array ist oder das Feld noch nicht vorhanden ist, wird es zuerst auf das leere Array festgelegt.

Gleichwertige Zahlen unterschiedlicher Typen (z. B. 3L und 3,0) gelten bei der Überprüfung auf fehlende Werte als gleich. NaN ist gleich NaN und Null ist gleich Null. Wenn die Eingabe mehrere äquivalente Werte enthält, wird nur der erste berücksichtigt.

Das entsprechende transform_result ist der Nullwert.

removeAllFromArray

object (ArrayValue)

Entfernt alle angegebenen Elemente aus dem Array im Feld. Wenn das Feld kein Array ist oder das Feld noch nicht vorhanden ist, wird es auf das leere Array festgelegt.

Äquivalente Zahlen der verschiedenen Typen (z.B. 3L und 3.0) gelten bei der Entscheidung, ob ein Element entfernt werden soll, als gleich. NaN ist gleich NaN und Null ist gleich Null. Dadurch werden alle entsprechenden Werte entfernt, falls es Duplikate gibt.

Das entsprechende transform_result ist der Nullwert.

ServerValue

Ein Wert, der vom Server berechnet wird.

Enums
SERVER_VALUE_UNSPECIFIED Nicht angegeben Dieser Wert darf nicht verwendet werden.
REQUEST_TIME Die Zeit, zu der der Server die Anfrage auf eine Millisekunde genau verarbeitet hat. Wird sie in einer Transaktion für mehrere Felder (identische oder unterschiedliche Dokumente) verwendet, erhalten alle Felder denselben Serverzeitstempel.