Remover campos

Descrição

Remova campos dos documentos produzidos na etapa anterior.

Os documentos gerados vão conter todos os campos da etapa anterior, exceto os especificados para remoção.

Sintaxe

Node.js

const results = await db.pipeline()
  .collection("/cities")
  .removeFields('population', 'location.state')
  .execute();

Exemplos 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();

Comportamento

Remover campos aninhados

A etapa remove_fields respeita a sintaxe de campo aninhado e remove chaves de um mapa.

Por exemplo, para remover o campo de estado aninhado do conjunto de dados:

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'}});

O pipeline a seguir pode ser usado:

Node.js

const results = await db.pipeline()
  .collection("/cities")
  .removeFields('location.state')
  .execute();

O que produz os seguintes documentos:

{name: 'San Francisco', location: {country: 'USA'}}
{name: 'Toronto', location: {country: 'Canada', province: 'Ontario'}}

A remoção de elementos em uma matriz não é compatível.

Remover em campos inexistentes

Se um campo aninhado ou de nível superior fornecido a remove_fields não existir em um documento, a etapa não vai editar o documento para esse campo. Os outros campos atuais ainda serão removidos.