Write

ドキュメントへの書き込み。

JSON 表現
{
  "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.
}
フィールド
updateMask

object (DocumentMask)

この書き込みで更新するフィールド。

このフィールドは、オペレーションが update の場合にのみ設定できます。update にマスクが設定されておらず、ドキュメントが存在する場合、既存のデータが上書きされます。マスクが設定されていて、サーバーのドキュメントにマスクでカバーされていないフィールドがある場合、それらは変更されません。マスクで参照されていても入力ドキュメントに存在しないフィールドは、サーバー上のドキュメントから削除されます。このマスクのフィールドパスに、予約済みのフィールド名を含めることはできません。

updateTransforms[]

object (FieldTransform)

更新後に実行する変換。

このフィールドは、オペレーションが update の場合にのみ設定できます。この書き込みが存在する場合は、同じドキュメントに対して updatetransform をアトミックに順番に実行するのと同じ結果になります。

currentDocument

object (Precondition)

ドキュメントに対するオプションの前提条件。

この値が設定されていて、ターゲット ドキュメントが満たしていない場合、書き込みは失敗します。

共用体フィールド operation。実行するオペレーション。operation は次のいずれかになります。
update

object (Document)

作成するドキュメント。

delete

string

削除するドキュメントの名前。形式は projects/{projectId}/databases/{databaseId}/documents/{document_path} です。

transform

object (DocumentTransform)

ドキュメントに変換を適用します。

DocumentTransform

ドキュメントの変換。

JSON 表現
{
  "document": string,
  "fieldTransforms": [
    {
      object (FieldTransform)
    }
  ]
}
フィールド
document

string

変換するドキュメントの名前。

fieldTransforms[]

object (FieldTransform)

ドキュメントのフィールドに適用する変換を順番に並べたリスト。空にすることはできません。

FieldTransform

ドキュメントのフィールドの変換。

JSON 表現
{
  "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.
}
フィールド
fieldPath

string

フィールドのパス。フィールドパスの構文リファレンスについては、Document.fields をご覧ください。

共用体フィールド transform_type。フィールドに適用する変換。transform_type は次のいずれかになります。
setToServerValue

enum (ServerValue)

指定されたサーバー値にフィールドを設定します。

increment

object (Value)

指定された値をフィールドの現在の値に加算します。

整数または倍精度値を指定する必要があります。フィールドが整数または double でない場合、またはフィールドがまだ存在しない場合、変換によりフィールドは指定された値に設定されます。指定された値または現在のフィールド値のいずれかが倍精度浮動小数点の場合、両方の値が倍精度浮動小数点として解釈されます。二重算術と倍精度値の表現は、IEEE 754 セマンティクスに従います。正または負の整数オーバーフローがある場合、フィールドは最大の正または負の整数に解決されます。

maximum

object (Value)

フィールドを現在の値と指定された値の最大値に設定します。

整数または倍精度値を指定する必要があります。フィールドが整数または double でない場合、またはフィールドがまだ存在しない場合、変換によりフィールドは指定された値に設定されます。フィールドと入力値の型が混在する(つまり、一方が整数で、もう一方が倍精度である)最大演算が適用される場合、そのフィールドは大きい方のオペランドの型を取ります。オペランドが同等である場合(例: 3 と 3.0)、フィールドは変更されません。0、0.0、-0.0 はすべてゼロです。0 の格納値と 0 の入力値の最大値は常に格納値です。数値 x と NaN の最大値は NaN です。

minimum

object (Value)

フィールドを現在の値と指定された値の最小値に設定します。

整数または倍精度値を指定する必要があります。フィールドが整数または double でない場合、またはフィールドがまだ存在しない場合、変換によりフィールドは入力値に設定されます。フィールドと入力値の型が混在する(つまり、1 は整数型、もう 1 型は double 型)最小演算が適用される場合、そのフィールドは小さい方のオペランドの型を取ります。オペランドが同等である場合(例: 3 と 3.0)、フィールドは変更されません。0、0.0、-0.0 はすべてゼロです。ゼロの格納値と 0 の入力値の最小値は、常に格納された値です。数値 x と NaN の最小値は NaN です。

appendMissingElements

object (ArrayValue)

指定された要素が現在のフィールド値にまだ存在しない場合は、順番に要素を追加します。フィールドが配列でない場合、またはフィールドがまだ存在しない場合は、まず空の配列に設定されます。

値が欠落しているかどうかを確認する際、異なる型の等しい数(3L と 3.0 など)は等しいと見なされます。NaN は NaN と等しく、Null は Null と等しくなります。入力に同等の値が複数含まれている場合は、最初の値のみが考慮されます。

対応する transform_result は null 値になります。

removeAllFromArray

object (ArrayValue)

フィールドの配列から指定されたすべての要素を削除します。フィールドが配列でない場合、またはフィールドがまだ存在しない場合は、空の配列に設定されます。

ある要素を削除するかどうかの判断では、同じ数の種類(例: 3L と 3.0)は等しいと見なされます。NaN は NaN と等しく、Null は Null と等しくなります。これにより、重複がある場合は同等の値がすべて削除されます。

対応する transform_result は null 値になります。

ServerValue

サーバーによって計算される値。

列挙型
SERVER_VALUE_UNSPECIFIED 指定なし。この値は使用しないでください。
REQUEST_TIME サーバーがリクエストを処理した時刻(ミリ秒単位)。トランザクションの複数のフィールド(同じまたは異なるドキュメント)で使用された場合、すべてのフィールドで同じサーバー タイムスタンプが取得されます。