Write

Una 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 a actualizar en este escrito.

Este campo se puede configurar sólo cuando la operación es update . Si la máscara no está configurada para una update y el documento existe, se sobrescribirán todos los datos existentes. Si la máscara está configurada y el documento en el servidor tiene campos no cubiertos por la máscara, 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 eliminan 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 sólo 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 esto se establece y el documento de destino no lo cumple.

operation de campo sindical. La operación a ejecutar. operation puede ser sólo una de las siguientes:
update

object ( Document )

Un documento para escribir.

delete

string

Un nombre de documento para eliminar. En el formato: projects/{projectId}/databases/{databaseId}/documents/{document_path} .

transform

object ( DocumentTransform )

Aplica una transformación a un documento.

Transformación de documento

Una transformación de un documento.

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

string

El nombre del documento a transformar.

fieldTransforms[]

object ( FieldTransform )

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

Transformación de campo

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

El camino del campo. Consulte Document.fields para obtener la referencia de sintaxis de la ruta del campo.

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

enum ( ServerValue )

Establece el campo al valor del servidor dado.

increment

object ( Value )

Agrega el valor dado al valor actual del campo.

Debe ser un valor entero o 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 del campo actual son dobles, ambos valores se interpretarán como dobles. La aritmética doble y la representación de valores dobles siguen la semántica IEEE 754. Si hay un desbordamiento de enteros positivos/negativos, el campo se resuelve al entero positivo/negativo de mayor magnitud.

maximum

object ( Value )

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

Debe ser un valor entero o 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 donde el campo y el valor de entrada son de tipos mixtos (es decir, uno es un número entero y el otro es doble), el campo adopta el tipo del operando mayor. Si los operandos son equivalentes (por ejemplo, 3 y 3,0), el campo no cambia. 0, 0,0 y -0,0 son todos cero. El máximo de 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 dado.

Debe ser un valor entero o 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 donde el campo y el valor de entrada son de tipos mixtos (es decir, uno es un número entero y el otro es doble), el campo adopta el tipo del operando más pequeño. Si los operandos son equivalentes (por ejemplo, 3 y 3,0), el campo no cambia. 0, 0,0 y -0,0 son todos cero. El mínimo de un valor almacenado cero y un valor de entrada cero es siempre el valor almacenado. El mínimo de cualquier valor numérico x y NaN es NaN.

appendMissingElements

object ( ArrayValue )

Agregue los elementos dados en orden si aún no están presentes en el valor del campo actual. Si el campo no es una matriz, o si el campo aún no existe, primero se establece en la matriz vacía.

Los números equivalentes de diferentes tipos (por ejemplo, 3L y 3,0) se consideran iguales al comprobar si falta un valor. NaN es igual a NaN y Null es igual a Null. Si la entrada contiene varios valores equivalentes, solo se considerará el primero.

El transform_result correspondiente será el valor nulo.

removeAllFromArray

object ( ArrayValue )

Elimine todos los elementos dados de la matriz en el campo. Si el campo no es una matriz, o si el campo aún no existe, se establece en la matriz vacía.

Los números equivalentes de los diferentes tipos (por ejemplo, 3L y 3.0) se consideran iguales al decidir si se debe eliminar un elemento. NaN es igual a NaN y Null es igual a Null. Esto eliminará todos los valores equivalentes si hay duplicados.

El transform_result correspondiente será el valor nulo.

Valor del servidor

Un valor calculado por el servidor.

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