Database

Description

Returns all the documents within a database across different collections and nested levels.

Syntax

Node.js

const results = await db.pipeline()
  .database()
  .execute();

Client examples

Web

// Count all documents in the database
const results = await execute(db.pipeline()
  .database()
  .aggregate(countAll().as("total"))
  );
Swift
// Count all documents in the database
let results = try await db.pipeline()
  .database()
  .aggregate([CountAll().as("total")])
  .execute()

Kotlin

// Count all documents in the database
val results = db.pipeline()
    .database()
    .aggregate(AggregateFunction.countAll().alias("total"))
    .execute()

Java

// Count all documents in the database
Task<Pipeline.Snapshot> results = db.pipeline()
    .database()
    .aggregate(AggregateFunction.countAll().alias("total"))
    .execute();
Python
from google.cloud.firestore_v1.pipeline_expressions import Count

# Count all documents in the database
results = client.pipeline().database().aggregate(Count().as_("total")).execute()
Java
// Count all documents in the database
Pipeline.Snapshot results =
    firestore.pipeline().database().aggregate(countAll().as("total")).executppets.java

Behavior

In order to use the database stage, it must appear as the first stage in the pipeline.

The order of documents returned from the database stage is unstable and shouldn't be relied upon. A subsequent sort stage can be used to obtain a deterministic ordering.

For example, for the following documents:

Node.js

await db.collection('cities').doc('SF').set({name: 'San Francsico', state: 'California', population: 800000});
await db.collection('states').doc('CA').set({name: 'California', population: 39000000});
await db.collection('countries').doc('USA').set({name: 'United States of America', population: 340000000});

The database stage can be used to retrieve all the documents in the database.

Node.js

const results = await db.pipeline()
  .database()
  .sort(field('population').ascending())
  .execute();

This query produces the following documents:

  {name: 'San Francsico', state: 'California', population: 800000}
  {name: 'California', population: 39000000}
  {name: 'United States of America', population: 340000000}