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)

將指定值新增至欄位目前的值。

必須是整數或雙精度浮點值。如果欄位不是整數或雙精度浮點值,或是該欄位不存在,則轉換會將欄位設為指定值。如果指定值或目前的欄位值是雙精度浮點數,兩個值都會被解讀為雙精度浮點值。雙值的雙算和表示會遵循 IEEE 754 語意。如果有正整數溢位現象,欄位會解析為最大的大小正負整數/負整數。

maximum

object (Value)

將欄位設為目前值與指定值的最大值。

必須是整數或雙精度浮點值。如果欄位不是整數或雙精度浮點值,或是該欄位不存在,則轉換會將欄位設為指定值。如果欄位和輸入值是混合型別 (也就是 1 是整數,1 是雙精度浮點數),卻套用最大運算,欄位會採用較大運算元的類型。如果運算元相等 (例如 3 和 3.0),則欄位不會變更。0、0.0 和 -0.0 都是零。零儲存值和輸入值的最大值一律為儲存值。x 和 NaN 的任何數值上限為 NaN。

minimum

object (Value)

將欄位設為目前值和指定值的最小值。

必須是整數或雙精度浮點值。如果欄位不是整數或雙精度浮點值,或是該欄位不存在,則轉換會將欄位設為輸入值。如果欄位和輸入值是混合型別 (也就是 - 一個是整數,1 為雙精度浮點數),則欄位會採用最小運算元類型。如果運算元相等 (例如 3 和 3.0),則欄位不會變更。0、0.0 和 -0.0 都是零。零值和零輸入值的最小值一律為儲存值。x 和 NaN 的任何數值的最小值為 NaN。

appendMissingElements

object (ArrayValue)

如果指定元素尚未出現在目前的欄位值中,請依序附加這些元素。如果欄位不是陣列,或是該欄位不存在,則會先設為空白陣列。

檢查是否缺少值時,系統會將不同類型的不同類型 (例如 3L 和 3.0) 相等。NaN 等於 NaN,而空值等於空值。如果輸入包含多個對等的值,系統只會採用第一個值。

對應的 transform_result 為空值。

removeAllFromArray

object (ArrayValue)

從欄位的陣列中移除所有指定元素。如果欄位不是陣列,或是該欄位不存在,則會設為空白的陣列。

判斷元素是否應移除時,不同類型 (例如 3L 和 3.0) 的相等數會視為相等。NaN 等於 NaN,而空值等於空值。這會移除所有重複的值。

對應的 transform_result 為空值。

ServerValue

伺服器計算的值。

列舉
SERVER_VALUE_UNSPECIFIED 未指定。請勿使用這個值。
REQUEST_TIME 伺服器處理要求的時間 (精確度可達毫秒)。如果您在交易的多個欄位 (相同或不同的文件) 中使用,所有欄位都會獲得相同的伺服器時間戳記。