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 . Если она присутствует, эта запись эквивалентна выполнению update и transform одного и того же документа атомарно и по порядку.

currentDocument

object ( Precondition )

Необязательное предварительное условие в документе.

Запись завершится неудачно, если это установлено и не соответствует целевому документу.

Полевая operation Союза. Операция, которую необходимо выполнить. operation может быть только одной из следующих:
update

object ( Document )

Документ для написания.

delete

string

Имя документа, который нужно удалить. В формате: projects/{projectId}/databases/{databaseId}/documents/{document_path} .

transform

object ( DocumentTransform )

Применяет преобразование к документу.

ДокументПреобразование

Трансформация документа.

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 )

Устанавливает для поля максимальное значение текущего значения и заданного значения.

Это должно быть целое число или двойное значение. Если поле не является целым или двойным числом или если поле еще не существует, преобразование установит для поля заданное значение. Если применяется операция максимума, когда поле и входное значение имеют смешанные типы (то есть одно целое число, а другое двойное число), поле принимает тип большего операнда. Если операнды эквивалентны (например, 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 будет иметь нулевое значение.

removeAllFromArray

object ( ArrayValue )

Удалить все заданные элементы из массива в поле. Если поле не является массивом или поле еще не существует, ему присваивается пустой массив.

Эквивалентные количества разных типов (например, 3L и 3.0) считаются равными при принятии решения о необходимости удаления элемента. NaN равно NaN, а Null равно Null. Это удалит все эквивалентные значения, если есть дубликаты.

Соответствующий Transform_result будет иметь нулевое значение.

значение сервера

Значение, рассчитываемое сервером.

Перечисления
SERVER_VALUE_UNSPECIFIED Не указано. Это значение нельзя использовать.
REQUEST_TIME Время обработки запроса сервером с точностью до миллисекунды. Если используется в нескольких полях (одных или разных документах) в транзакции, все поля получат одну и ту же метку времени сервера.