Beschreibung
Entfernt Felder aus den Dokumenten, 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();
Go
snapshot := client.Pipeline().Collection("cities"). RemoveFields(firestore.Fields("population", "location.state")). Execute(ctx)
Verhalten
Verschachtelte Felder entfernen
In der Phase remove_fields(...) wird die Syntax für verschachtelte Felder berücksichtigt und es werden Schlüssel aus einer Map entfernt.
Wenn Sie beispielsweise das verschachtelte Feld „state“ aus dem Dataset entfernen möchten:
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"}});
Die folgende Pipeline kann verwendet werden:
Node.js
const results = await db.pipeline()
.collection("/cities")
.removeFields("location.state")
.execute();
Dadurch werden die folgenden 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 bei nicht vorhandenen Feldern
Wenn ein verschachteltes oder Feld der obersten Ebene, das an remove_fields(...) übergeben wird, in einem Dokument nicht vorhanden ist, wird das Dokument für dieses Feld in der Phase nicht bearbeitet. Andere vorhandene Felder werden weiterhin entfernt.