Descrizione
Rimuovi i campi dai documenti prodotti dalla fase precedente.
I documenti generati conterranno tutti i campi della fase precedente, tranne quelli specificati per la rimozione.
Esempi
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();
Comportamento
Rimuovi campi nidificati
La fase remove_fields(...) rispetta la sintassi dei campi nidificati e rimuove
le chiavi da una mappa.
Ad esempio, per rimuovere il campo stato nidificato dal set di dati:
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"}});
È possibile utilizzare la seguente pipeline:
Node.js
const results = await db.pipeline()
.collection("/cities")
.removeFields("location.state")
.execute();
che produce i seguenti documenti:
{ name: "San Francisco", location: { country: "USA" } }
{ name: "Toronto", location: { country: "Canada", province: "Ontario" } }
La rimozione di elementi all'interno di un array non è supportata.
Remove on Non-Existent Fields
Se un campo nidificato o di primo livello fornito a remove_fields(...) non esiste in un documento, lo stato non modificherà il documento per quel campo. Gli altri campi esistenti
verranno comunque rimossi.