นำช่องออก

คำอธิบาย

นำฟิลด์ออกจากเอกสารที่สร้างขึ้นในระยะก่อนหน้า

เอกสารที่สร้างขึ้นจะมีฟิลด์ทั้งหมดจากระยะก่อนหน้า ยกเว้นฟิลด์ที่ระบุให้นำออก

ตัวอย่าง

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();

พฤติกรรม

นำฟิลด์ที่ซ้อนกันออก

ระยะ remove_fields(...) จะพิจารณาสังเกตไวยากรณ์ของฟิลด์ที่ซ้อนกัน และจะนำคีย์ออกจากแผนที่

ตัวอย่างเช่น หากต้องการนำฟิลด์สถานะที่ซ้อนกันออกจากชุดข้อมูล ให้ทำดังนี้

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"}});

คุณสามารถใช้ไปป์ไลน์ต่อไปนี้

Node.js

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

ซึ่งจะสร้างเอกสารต่อไปนี้

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

ระบบไม่รองรับการนำองค์ประกอบภายในอาร์เรย์ออก

นำฟิลด์ที่ไม่มีอยู่ออก

หากฟิลด์ระดับบนสุดหรือฟิลด์ที่ซ้อนกันซึ่งระบุไว้ใน remove_fields(...) ไม่มีอยู่ในเอกสาร ระยะจะไม่แก้ไขเอกสารสำหรับฟิลด์นั้น แต่จะยังคงนำฟิลด์อื่นๆ ที่มีอยู่ออก