Descripción
Quita campos de los documentos que produjo la etapa anterior.
Los documentos generados contendrán todos los campos de la etapa anterior, excepto los campos especificados para quitar.
Sintaxis
Node.js
const results = await db.pipeline()
.collection("/cities")
.removeFields('population', 'location.state')
.execute();
Ejemplos de clientes
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();
Comportamiento
Cómo quitar campos anidados
La etapa remove_fields respeta la sintaxis de campos anidados y quitará las claves de un mapa.
Por ejemplo, para quitar el campo de estado anidado del conjunto de datos, haz lo siguiente:
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'}});
Se puede usar la siguiente canalización:
Node.js
const results = await db.pipeline()
.collection("/cities")
.removeFields('location.state')
.execute();
Esto produce los siguientes documentos:
{name: 'San Francisco', location: {country: 'USA'}}
{name: 'Toronto', location: {country: 'Canada', province: 'Ontario'}}
No se admite la eliminación de elementos dentro de un array.
Eliminación en campos no existentes
Si un campo anidado o de nivel superior proporcionado a remove_fields no existe en un documento, la etapa no editará el documento para ese campo. Se quitarán los demás campos existentes.