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)

지정된 값을 필드의 현재 값에 추가합니다.

정수 또는 배정밀도 값이어야 합니다. 필드가 정수 또는 double이 아니거나 필드가 아직 존재하지 않는 경우 변환은 필드를 지정된 값으로 설정합니다. 지정된 값 또는 현재 필드 값 중 하나가 double이면 두 값 모두 double로 해석됩니다. double 산술 및 double 값의 표현은 IEEE 754 의미 체계를 따릅니다. 양의/음의 정수 오버플로가 있는 경우, 필드는 가장 큰 양의 양/음수 정수로 변환됩니다.

maximum

object (Value)

필드를 현재 값과 지정된 값의 최댓값으로 설정합니다.

정수 또는 배정밀도 값이어야 합니다. 필드가 정수 또는 double이 아니거나 필드가 아직 존재하지 않는 경우 변환은 필드를 지정된 값으로 설정합니다. 필드와 입력 값의 유형이 혼합된 유형 (예: 하나는 정수이고 하나는 double)인 최대 연산이 적용되는 경우 필드는 더 큰 피연산자의 유형을 취합니다. 피연산자가 동일하면 (예: 3과 3.0) 필드는 변경되지 않습니다. 0, 0.0, -0.0은 모두 0입니다. 0의 저장된 값과 0 입력 값의 최댓값은 항상 저장된 값입니다. 모든 숫자 값 x 및 NaN의 최댓값은 NaN입니다.

minimum

object (Value)

필드를 현재 값과 지정된 값의 최솟값으로 설정합니다.

정수 또는 배정밀도 값이어야 합니다. 필드가 정수 또는 double이 아니거나 필드가 아직 없는 경우 변환이 필드를 입력 값으로 설정합니다. 필드와 입력 값의 유형이 혼합된 유형 (즉, 하나는 정수이고 하나는 배정밀도)인 최소 연산이 적용되는 경우 필드는 더 작은 피연산자의 유형을 취합니다. 피연산자가 동일하면 (예: 3과 3.0) 필드는 변경되지 않습니다. 0, 0.0, -0.0은 모두 0입니다. 0의 저장 값과 0 입력 값의 최솟값은 항상 저장 값입니다. 모든 숫자 값 x 및 NaN의 최솟값은 NaN입니다.

appendMissingElements

object (ArrayValue)

현재 필드 값에 없는 경우 지정된 요소를 순서대로 추가합니다. 필드가 배열이 아니거나 필드가 아직 없는 경우에는 먼저 빈 배열로 설정됩니다.

값이 누락되었는지 확인할 때 다른 유형 (예: 3L 및 3.0)의 상응하는 개수는 동일한 것으로 간주됩니다. NaN은 NaN과 같고 Null은 Null과 같습니다. 입력에 동등한 값이 여러 개 포함된 경우 첫 번째 값만 고려됩니다.

해당 변환_결과는 null 값입니다.

removeAllFromArray

object (ArrayValue)

필드의 배열에서 지정된 요소를 모두 삭제합니다. 필드가 배열이 아니거나 필드가 아직 없는 경우에는 빈 배열로 설정됩니다.

요소 삭제 여부를 결정할 때 서로 다른 유형 (예: 3L 및 3.0)의 상응하는 개수는 동일한 것으로 간주됩니다. NaN은 NaN과 같고 Null은 Null과 같습니다. 중복이 있는 경우 동등한 모든 값이 삭제됩니다.

해당 변환_결과는 null 값입니다.

ServerValue

서버에서 계산하는 값입니다.

열거형
SERVER_VALUE_UNSPECIFIED 지정되지 않았습니다. 이 값은 사용할 수 없습니다.
REQUEST_TIME 서버가 요청을 밀리초 단위로 처리한 시간입니다. 트랜잭션의 여러 필드 (동일하거나 다른 문서)에 사용되는 경우 모든 필드에 동일한 서버 타임스탬프가 부여됩니다.