Write

Escritura en un documento

Representación 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.
}
Campos
updateMask

object (DocumentMask)

Los campos que se actualizarán en esta escritura.

Este campo se puede configurar solo cuando la operación es update. Si no se configura la máscara para un update y el documento existe, se reemplazarán los datos existentes. Si la máscara está configurada y el documento en el servidor tiene campos que no están cubiertos por la máscara, estos no se modifican. Los campos a los que se hace referencia en la máscara, pero que no están presentes en el documento de entrada, se borran del documento en el servidor. Las rutas de campo de esta máscara no deben contener un nombre de campo reservado.

updateTransforms[]

object (FieldTransform)

Las transformaciones que se realizarán después de la actualización.

Este campo se puede configurar solo cuando la operación es update. Si está presente, esta escritura equivale a realizar update y transform en el mismo documento de forma atómica y en orden.

currentDocument

object (Precondition)

Una condición previa opcional en el documento.

La escritura fallará si se configura y el documento de destino no la cumple.

Campo de unión operation. La operación que se ejecutará. operation puede ser solo uno de los siguientes:
update

object (Document)

Un documento para escribir.

delete

string

El nombre de un documento que se borrará. En el formato projects/{projectId}/databases/{databaseId}/documents/{document_path}.

transform

object (DocumentTransform)

Aplica una transformación a un documento.

DocumentTransform

Es la transformación de un documento.

Representación JSON
{
  "document": string,
  "fieldTransforms": [
    {
      object (FieldTransform)
    }
  ]
}
Campos
document

string

El nombre del documento que se transformará.

fieldTransforms[]

object (FieldTransform)

La lista de transformaciones que se aplicarán a los campos del documento, en orden. Este campo no debe estar vacío.

Transformación de campo

Es una transformación de un campo del documento.

Representación 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.
}
Campos
fieldPath

string

La ruta del campo. Consulta Document.fields para obtener la referencia de sintaxis de la ruta de acceso del campo.

Campo de unión transform_type. La transformación que se aplicará en el campo. transform_type puede ser solo uno de los siguientes:
setToServerValue

enum (ServerValue)

Establece el campo en el valor del servidor determinado.

increment

object (Value)

Agrega el valor dado al valor actual del campo.

Debe ser un número entero o un valor doble. Si el campo no es un número entero o doble, o si el campo aún no existe, la transformación establecerá el campo en el valor dado. Si cualquiera de los valores dados o el valor actual del campo se duplica, ambos valores se interpretarán como dobles. La aritmética doble y la representación de valores dobles siguen la semántica de IEEE 754. Si hay un desbordamiento de números enteros positivos o negativos, el campo se resuelve al número entero positivo/negativo de magnitud más grande.

maximum

object (Value)

Establece el campo al máximo de su valor actual y el valor especificado.

Debe ser un número entero o un valor doble. Si el campo no es un número entero o doble, o si el campo aún no existe, la transformación establecerá el campo en el valor dado. Si se aplica una operación máxima en la que el campo y el valor de entrada son de varios tipos (es decir, uno es un número entero y el otro es un doble), el campo adopta el tipo del operando más grande. Si los operandos son equivalentes (p.ej., 3 y 3.0), el campo no cambia. 0, 0.0 y -0.0 son cero. El máximo entre un valor almacenado cero y un valor de entrada cero es siempre el valor almacenado. El máximo de cualquier valor numérico x y NaN es NaN.

minimum

object (Value)

Establece el campo al mínimo de su valor actual y el valor especificado.

Debe ser un número entero o un valor doble. Si el campo no es un número entero o doble, o si el campo aún no existe, la transformación establecerá el campo en el valor de entrada. Si se aplica una operación mínima en la que el campo y el valor de entrada son tipos mixtos (es decir, uno es un número entero y el otro es un doble), el campo adopta el tipo del operando más pequeño. Si los operandos son equivalentes (p.ej., 3 y 3.0), el campo no cambia. 0, 0.0 y -0.0 son cero. El mínimo entre cero y un valor de entrada y cero es siempre el valor almacenado. El mínimo de cualquier valor numérico x y NaN es NaN.

appendMissingElements

object (ArrayValue)

Agrega los elementos dados en orden si aún no están presentes en el valor del campo actual. Si el campo no es un array o si el campo aún no existe, primero se configura como un array vacío.

Los números equivalentes de diferentes tipos (p.ej., 3L y 3.0) se consideran iguales cuando se verifica si falta un valor. NaN es igual a NaN y Nulo es igual a Nulo. Si la entrada contiene múltiples valores equivalentes, solo se considerará el primero.

El transform_result correspondiente será el valor nulo.

removeAllFromArray

object (ArrayValue)

Quita todos los elementos especificados del array en el campo. Si el campo no es un array o si el campo aún no existe, se establece en el array vacío.

Los números equivalentes de los diferentes tipos (p.ej., 3L y 3.0) se consideran iguales para decidir si se debe quitar un elemento. NaN es igual a NaN y Nulo es igual a Nulo. Esto quitará todos los valores equivalentes si hay duplicados.

El transform_result correspondiente será el valor nulo.

ServerValue

Un valor que calcula el servidor.

Enums
SERVER_VALUE_UNSPECIFIED Sin especificar. No se debe usar este valor.
REQUEST_TIME La hora a la que el servidor procesó la solicitud, con milisegundos de precisión Si se usa en varios campos (documentos iguales o diferentes) en una transacción, todos los campos obtendrán la misma marca de tiempo del servidor.