Description
Supprimez des champs des documents produits par l'étape précédente.
Les documents générés contiendront tous les champs de l'étape précédente, à l'exception de ceux spécifiés pour être supprimés.
Exemples
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();
Comportement
Supprimer des champs imbriqués
L'étape remove_fields(...) respecte la syntaxe des champs imbriqués et supprime les clés d'une carte.
Par exemple, pour supprimer le champ d'état imbriqué de l'ensemble de données :
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"}});
Le pipeline suivant peut être utilisé :
Node.js
const results = await db.pipeline()
.collection("/cities")
.removeFields("location.state")
.execute();
Résultat :
{ name: "San Francisco", location: { country: "USA" } }
{ name: "Toronto", location: { country: "Canada", province: "Ontario" } }
La suppression d'éléments dans un tableau n'est pas prise en charge.
Supprimer des champs inexistants
Si un champ imbriqué ou de premier niveau transmis à remove_fields(...) n'existe pas dans un document, l'étape ne modifie pas le document pour ce champ. Les autres champs existants seront toujours supprimés.