Write

Una scrittura su un documento.

Rappresentazione 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.
}
Campi
updateMask

object (DocumentMask)

I campi da aggiornare in questa scrittura.

Questo campo può essere impostato solo quando l'operazione è update. Se la maschera non è impostata per un update ed esiste il documento, i dati esistenti verranno sovrascritti. Se la maschera è impostata e il documento sul server ha campi non coperti dalla maschera, questi rimangono invariati. I campi a cui viene fatto riferimento nella maschera, ma non presenti nel documento di input, vengono eliminati dal documento sul server. I percorsi dei campi in questa maschera non devono contenere un nome di campo riservato.

updateTransforms[]

object (FieldTransform)

Le trasformazioni da eseguire dopo l'aggiornamento.

Questo campo può essere impostato solo quando l'operazione è update. Se presente, questa scrittura equivale a eseguire update e transform per lo stesso documento a livello atomico e in ordine.

currentDocument

object (Precondition)

Una condizione preliminare facoltativa sul documento.

La scrittura avrà esito negativo se questo viene impostato e non viene soddisfatto dal documento di destinazione.

Campo di unione operation. L'operazione da eseguire. operation può essere solo uno dei seguenti:
update

object (Document)

Un documento da scrivere.

delete

string

Il nome di un documento da eliminare. Nel formato: projects/{projectId}/databases/{databaseId}/documents/{document_path}.

transform

object (DocumentTransform)

Applica una trasformazione a un documento.

DocumentTransform

La trasformazione di un documento.

Rappresentazione JSON
{
  "document": string,
  "fieldTransforms": [
    {
      object (FieldTransform)
    }
  ]
}
Campi
document

string

Il nome del documento da trasformare.

fieldTransforms[]

object (FieldTransform)

L'elenco delle trasformazioni da applicare ai campi del documento, in ordine. Questo campo non deve essere vuoto.

FieldTransform

La trasformazione di un campo del documento.

Rappresentazione 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.
}
Campi
fieldPath

string

Il percorso del campo. Consulta Document.fields per il riferimento alla sintassi del percorso del campo.

Campo di unione transform_type. La trasformazione da applicare al campo. transform_type può essere solo uno dei seguenti:
setToServerValue

enum (ServerValue)

Imposta il campo sul valore del server specificato.

increment

object (Value)

Aggiunge il valore specificato al valore corrente del campo.

Deve essere un numero intero o un valore doppio. Se il campo non è un numero intero o un doppio oppure il campo non esiste ancora, la trasformazione lo imposterà sul valore specificato. Se uno dei valori specificati o quelli del campo corrente sono doppi, entrambi verranno interpretati come doppi. L'aritmetica doppia e la rappresentazione di valori doppi seguono la semantica dello standard IEEE 754. In caso di overflow di numero intero positivo/negativo, il campo viene risolto nel numero intero positivo/negativo di magnitudo più grande.

maximum

object (Value)

Consente di impostare il campo al massimo del valore attuale e del valore specificato.

Deve essere un numero intero o un valore doppio. Se il campo non è un numero intero o un doppio oppure il campo non esiste ancora, la trasformazione lo imposterà sul valore specificato. Se viene applicata un'operazione massima in cui il campo e il valore di input sono di tipo misto (ovvero uno è un numero intero e uno è il doppio), il campo assume il tipo dell'operando più grande. Se gli operandi sono equivalenti (ad es. 3 e 3.0), il campo non viene modificato. 0, 0,0 e -0,0 sono tutti zero. Il valore massimo tra un valore memorizzato e uno di input pari a zero è sempre il valore memorizzato. Il massimo di qualsiasi valore numerico x e NaN è NaN.

minimum

object (Value)

Imposta il campo al minimo del suo valore attuale e del valore specificato.

Deve essere un numero intero o un valore doppio. Se il campo non è un numero intero o un doppio oppure il campo non esiste ancora, la trasformazione lo imposterà sul valore di input. Se viene applicata un'operazione minima in cui il campo e il valore di input sono di tipo misto (ovvero uno è un numero intero e uno è un doppio), il campo assume il tipo dell'operando più piccolo. Se gli operandi sono equivalenti (ad es. 3 e 3.0), il campo non viene modificato. 0, 0,0 e -0,0 sono tutti zero. Il valore minimo tra un valore memorizzato e uno di input pari a zero è sempre il valore memorizzato. Il minimo di qualsiasi valore numerico x e NaN è NaN.

appendMissingElements

object (ArrayValue)

Aggiungi gli elementi specificati in ordine se non sono già presenti nel valore del campo corrente. Se il campo non è un array o se il campo non esiste ancora, viene prima impostato sull'array vuoto.

Numeri equivalenti di tipi diversi (ad es. 3L e 3,0) sono considerati uguali quando si controlla se un valore è mancante. NaN è uguale a NaN e null è uguale a null. Se l'input contiene più valori equivalenti, verrà preso in considerazione solo il primo.

Il valore Transform_result corrispondente sarà il valore null.

removeAllFromArray

object (ArrayValue)

Rimuovi tutti gli elementi specificati dall'array nel campo. Se il campo non è un array o se il campo non esiste ancora, viene impostato sull'array vuoto.

I numeri equivalenti dei diversi tipi (ad es. 3L e 3.0) sono considerati uguali quando decidi se un elemento deve essere rimosso. NaN è uguale a NaN e null è uguale a null. Verranno rimossi tutti i valori equivalenti se sono presenti duplicati.

Il valore Transform_result corrispondente sarà il valore null.

ServerValue

Valore calcolato dal server.

Enum
SERVER_VALUE_UNSPECIFIED Non specificato. Questo valore non deve essere utilizzato.
REQUEST_TIME L'ora in cui il server ha elaborato la richiesta, con una precisione di un millisecondo. Se utilizzati in più campi (documenti uguali o diversi) in una transazione, tutti i campi avranno lo stesso timestamp del server.