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)

將轉換套用至文件。

Document 轉換

文件的轉換。

JSON 表示法
{
  "document": string,
  "fieldTransforms": [
    {
      object (FieldTransform)
    }
  ]
}
欄位
document

string

要轉換的文件名稱。

fieldTransforms[]

object (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 為雙精度),欄位就會採用較大運算元的類型。如果運算元相等 (例如 3 和 3.0),欄位就不會變更。0、0.0 和 -0.0 都是零。儲存值上限零或輸入值一律為儲存的值。x 和 NaN 的任何數值上限為 NaN。

minimum

object (Value)

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

必須是整數或雙精度浮點值。如果欄位不是整數或雙精度浮點值,或是欄位不存在,轉換會將欄位設為輸入值。如果套用最小運算值,且欄位和輸入值屬於混合型別 (也就是 - 一個為整數,而 1 為雙精度浮點值),欄位就會採用較小的運算元類型。如果運算元相等 (例如 3 和 3.0),欄位就不會變更。0、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 將為空值。

伺服器值

伺服器計算的值。

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