Felder entfernen

Beschreibung

Felder aus den Dokumenten entfernen, die in der vorherigen Phase erstellt wurden.

Die generierten Dokumente enthalten alle Felder aus der vorherigen Phase mit Ausnahme der Felder, die entfernt werden sollen.

Beispiele

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

Verhalten

Verschachtelte Felder entfernen

In der Phase remove_fields(...) wird die Syntax für verschachtelte Felder berücksichtigt und Schlüssel werden aus einer Map entfernt.

So entfernen Sie beispielsweise das verschachtelte Feld „state“ aus dem Dataset:

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

Folgende Pipeline kann verwendet werden:

Node.js

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

Dadurch werden folgende Dokumente erstellt:

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

Das Entfernen von Elementen in einem Array wird nicht unterstützt.

Entfernen nicht vorhandener Felder

Wenn ein verschachteltes Feld oder ein Feld der obersten Ebene, das an remove_fields(...) übergeben wird, in einem Dokument nicht vorhanden ist, wird das Dokument für dieses Feld nicht bearbeitet. Andere vorhandene Felder werden weiterhin entfernt.