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.