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)

将字段设置为其当前值和指定值的最大值。

此值必须是整数或双精度值。如果该字段不是整数或双精度类型,或者该字段尚不存在,转换会将该字段设置为指定值。如果在字段和输入值是混合类型(即一个为整数,一个为双精度)时应用最大运算,则该字段将采用较大运算数的类型。如果操作数等效(例如 3 和 3.0),则该字段不会更改。0、0.0 和 -0.0 全部为零。零存储值和零输入值的最大值始终为存储值。任何数值 x 和 NaN 的最大值为 NaN。

minimum

object (Value)

将字段设置为其当前值和指定值的最小值。

此值必须是整数或双精度值。如果该字段不是整数或双精度类型,或者该字段尚不存在,转换会将该字段设置为输入值。如果在字段和输入值是混合类型(即一个为整数,一个为双精度)时应用最小运算,则该字段将采用较小运算数的类型。如果操作数等效(例如 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 服务器处理请求的时间(精确到毫秒)。如果在事务中的多个字段(相同或不同的文档)上使用,所有字段都将获得相同的服务器时间戳。