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 型である場合、両方の値が double 型として解釈されます。double 算術と double 値の表現は IEEE 754 セマンティクスに従います。正または負の整数オーバーフローがある場合、フィールドは大きさが最大の正または負の整数に解決されます。

maximum

object (Value)

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

整数値または倍精度値を指定してください。フィールドが整数または倍精度浮動小数点でない場合、またはフィールドがまだ存在しない場合、変換によってそのフィールドは指定された値に設定されます。フィールドと入力値の型が混在している(つまり、1 つは整数で、もう 1 つは倍精度)場合に最大演算が適用される場合、フィールドは大きい方のオペランドの型を使用します。オペランドが等しい場合(たとえば、3 と 3.0)、フィールドは変更されません。0、0.0、-0.0 はすべてゼロです。ゼロの保存値とゼロ入力値の最大値は常に、保存された値になります。数値 x と NaN の最大値は NaN です。

minimum

object (Value)

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

整数値または倍精度値を指定してください。フィールドが整数または倍精度浮動小数点でない場合、またはフィールドがまだ存在しない場合は、変換によってそのフィールドは入力値に設定されます。フィールドと入力値の型が混在する最小演算が適用される場合(つまり、1 つは整数で、もう 1 つは倍精度)、フィールドは小さい方のオペランドの型を使用します。オペランドが等しい場合(たとえば、3 と 3.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 サーバーがリクエストを処理した時刻(ミリ秒単位)。トランザクションで複数のフィールド(同一または異なるドキュメント)で使用する場合は、すべてのフィールドに同じサーバー タイムスタンプが適用されます。