Xoá trường

Mô tả

Xoá các trường khỏi tài liệu do giai đoạn trước tạo ra.

Các tài liệu được tạo sẽ chứa tất cả các trường của giai đoạn trước, ngoại trừ những trường được chỉ định là sẽ bị xoá.

Ví dụ

Node.js
const results = await db.pipeline()
  .collection("cities")
  .removeFields("population", "location.state")
  .execute();

Web

const results = await execute(db.pipeline()
  .collection("cities")
  .removeFields("population", "location.state"));
Swift
let results = try await db.pipeline()
  .collection("cities")
  .removeFields(["population", "location.state"])
  .execute()

Kotlin

val results = db.pipeline()
    .collection("cities")
    .removeFields("population", "location.state")
    .execute()

Java

Task<Pipeline.Snapshot> results = db.pipeline()
        .collection("cities")
        .removeFields("population", "location.state")
        .execute();
Python
results = (
    client.pipeline()
    .collection("cities")
    .remove_fields("population", "location.state")
    .execute()
)
Java
Pipeline.Snapshot results =
    firestore
        .pipeline()
        .collection("cities")
        .removeFields("population", "location.state")
        .execute()
        .get();
Bắt đầu
snapshot := client.Pipeline().Collection("cities").
	RemoveFields(firestore.Fields("population", "location.state")).
	Execute(ctx)

Hành vi

Xoá các trường lồng ghép

Giai đoạn remove_fields(...) tuân theo cú pháp trường lồng nhau và sẽ xoá các khoá khỏi bản đồ.

Ví dụ: để xoá trường trạng thái lồng nhau khỏi tập dữ liệu:

Node.js

await db.collection("cities").doc("SF").set({name: "San Francisco", location: {country: "USA", state: "California"}});
await db.collection("cities").doc("TO").set({name: "Toronto", location: {country: "Canada", province: "Ontario"}});

Bạn có thể sử dụng quy trình sau:

Node.js

const results = await db.pipeline()
  .collection("/cities")
  .removeFields("location.state")
  .execute();

Điều này tạo ra các tài liệu sau:

{ name: "San Francisco", location: { country: "USA" } }
{ name: "Toronto", location: { country: "Canada", province: "Ontario" } }

Hệ thống không hỗ trợ việc xoá các phần tử trong một mảng.

Xoá trên các trường không tồn tại

Nếu một trường lồng nhau hoặc trường cấp cao nhất được cung cấp cho remove_fields(...) không tồn tại trong một tài liệu, thì giai đoạn này sẽ không chỉnh sửa tài liệu cho trường đó. Các trường hiện có khác vẫn sẽ bị xoá.