Write

Viết trên tài liệu.

Biểu diễn dưới dạng 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.
}
Trường
updateMask

object (DocumentMask)

Các trường cần cập nhật trong lần ghi này.

Bạn chỉ có thể đặt trường này khi thao tác là update. Nếu bạn không đặt mặt nạ cho update và tài liệu tồn tại, thì mọi dữ liệu hiện có sẽ bị ghi đè. Nếu bạn đặt mặt nạ và tài liệu trên máy chủ có các trường không được mặt nạ che phủ, thì các trường đó sẽ không thay đổi. Các trường được tham chiếu trong mặt nạ nhưng không xuất hiện trong tài liệu nhập sẽ bị xoá khỏi tài liệu trên máy chủ. Các đường dẫn trường trong mặt nạ này không được chứa tên trường dành riêng.

updateTransforms[]

object (FieldTransform)

Các phép biến đổi sẽ thực hiện sau khi cập nhật.

Bạn chỉ có thể đặt trường này khi thao tác là update. Nếu có, lượt ghi này tương đương với việc thực hiện updatetransform cho cùng một tài liệu theo thứ tự nguyên tử.

currentDocument

object (Precondition)

Điều kiện tiên quyết (không bắt buộc) trên tài liệu.

Quá trình ghi sẽ không thành công nếu giá trị này được đặt và không được tài liệu đích đáp ứng.

Trường hợp operation. Toán tử cần thực thi. operation chỉ có thể là một trong những trạng thái sau:
update

object (Document)

Một tài liệu cần viết.

delete

string

Tên tài liệu cần xoá. Theo định dạng: projects/{projectId}/databases/{databaseId}/documents/{document_path}.

transform

object (DocumentTransform)

Áp dụng phép biến đổi cho tài liệu.

DocumentTransform

Phiên bản biến đổi của tài liệu.

Biểu diễn dưới dạng JSON
{
  "document": string,
  "fieldTransforms": [
    {
      object (FieldTransform)
    }
  ]
}
Trường
document

string

Tên của tài liệu cần chuyển đổi.

fieldTransforms[]

object (FieldTransform)

Danh sách các phép biến đổi theo thứ tự áp dụng cho các trường của tài liệu. Không được để trống trường này.

FieldTransform

Biến đổi một trường của tài liệu.

Biểu diễn dưới dạng 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.
}
Trường
fieldPath

string

Đường dẫn của trường. Hãy xem Document.fields để biết tài liệu tham khảo về cú pháp đường dẫn trường.

Trường hợp transform_type. Quy tắc chuyển đổi để áp dụng cho trường. transform_type chỉ có thể là một trong những trạng thái sau:
setToServerValue

enum (ServerValue)

Đặt trường này thành giá trị máy chủ đã cho.

increment

object (Value)

Cộng giá trị đã cho vào giá trị hiện tại của trường.

Đây phải là một số nguyên hoặc một giá trị kép. Nếu trường không phải là số nguyên hoặc giá trị kép, hoặc nếu trường chưa tồn tại, thì phép biến đổi sẽ đặt trường đó thành giá trị đã cho. Nếu một trong hai giá trị đã cho hoặc giá trị hiện tại của trường là nhân đôi, thì cả hai giá trị sẽ được thể hiện là nhân đôi. Số học kép và cách biểu diễn các giá trị kép tuân theo ngữ nghĩa IEEE 754. Nếu có tràn số nguyên dương/âm, trường sẽ được phân giải thành số nguyên dương/âm lớn nhất.

maximum

object (Value)

Đặt trường thành giá trị tối đa của giá trị hiện tại và giá trị đã cho.

Đây phải là một số nguyên hoặc một giá trị kép. Nếu trường không phải là số nguyên hoặc giá trị kép, hoặc nếu trường chưa tồn tại, thì phép biến đổi sẽ đặt trường đó thành giá trị đã cho. Nếu áp dụng toán tử tối đa, trong đó trường và giá trị nhập là loại hỗn hợp (nghĩa là một là số nguyên và một là toán tử kép), thì trường sẽ nhận loại toán hạng lớn hơn. Nếu các toán hạng tương đương (ví dụ: 3 và 3.0), thì trường sẽ không thay đổi. 0, 0,0 và -0,0 đều bằng 0. Giá trị lớn nhất của giá trị được lưu trữ bằng 0 và giá trị nhập bằng 0 luôn là giá trị được lưu trữ. Giá trị lớn nhất của giá trị số x và NaN bất kỳ là NaN.

minimum

object (Value)

Đặt trường thành giá trị nhỏ nhất của giá trị hiện tại và giá trị đã cho.

Đây phải là một số nguyên hoặc một giá trị kép. Nếu trường không phải là số nguyên hoặc giá trị kép, hoặc nếu trường chưa tồn tại, thì quy tắc chuyển đổi sẽ đặt trường đó thành giá trị nhập. Nếu áp dụng phép toán tối thiểu, trong đó trường và giá trị nhập vào là loại hỗn hợp (nghĩa là một là số nguyên và một là toán tử kép), thì trường đó sẽ nhận loại toán hạng nhỏ hơn. Nếu các toán hạng tương đương (ví dụ: 3 và 3.0), thì trường sẽ không thay đổi. 0, 0,0 và -0,0 đều bằng 0. Giá trị nhỏ nhất của một giá trị được lưu trữ bằng 0 và giá trị nhập vào bằng 0 luôn là giá trị được lưu trữ. Giá trị số nhỏ nhất của giá trị x và NaN bất kỳ là NaN.

appendMissingElements

object (ArrayValue)

Thêm các phần tử đã cho theo thứ tự nếu các phần tử đó chưa có trong giá trị của trường hiện tại. Nếu trường không phải là một mảng hoặc nếu trường chưa tồn tại, thì trước tiên, trường đó sẽ được đặt thành mảng trống.

Số lượng tương đương thuộc các loại khác nhau (ví dụ: 3L và 3.0) được xem là bằng nhau khi kiểm tra xem có thiếu giá trị hay không. NaN bằng NaN và Null bằng Null. Nếu dữ liệu đầu vào chứa nhiều giá trị tương đương, thì chỉ giá trị đầu tiên được xem xét.

Phép biến đổi_tương ứng sẽ là giá trị rỗng.

removeAllFromArray

object (ArrayValue)

Xoá tất cả phần tử đã cho khỏi mảng trong trường đó. Nếu trường không phải là một mảng hoặc nếu trường chưa tồn tại thì trường đó sẽ được đặt thành mảng trống.

Số lượng tương đương của các loại khác nhau (ví dụ: 3L và 3.0) được xem là bằng nhau khi quyết định xem có nên xoá một phần tử hay không. NaN bằng NaN và Null bằng Null. Thao tác này sẽ xoá tất cả giá trị tương đương nếu có giá trị trùng lặp.

Phép biến đổi_tương ứng sẽ là giá trị rỗng.

ServerValue

Một giá trị do máy chủ tính toán.

Enum
SERVER_VALUE_UNSPECIFIED Không xác định. Không được sử dụng giá trị này.
REQUEST_TIME Thời gian máy chủ xử lý yêu cầu, với độ chính xác tính bằng mili giây. Nếu được sử dụng trên nhiều trường (cùng hoặc các tài liệu khác nhau) trong một giao dịch, tất cả các trường sẽ nhận cùng một dấu thời gian máy chủ.