Database (Input Stage)
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
Android
// Count all documents in the database val results = db . pipeline () . database () . aggregate ( AggregateFunction . countAll (). alias ( "total" )) . execute ()
Java
Android
// 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" )). execute (). get ();
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
}

