Quitar campos

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.