Beschreibung
Gibt alle Dokumente in einer Datenbank über verschiedene Sammlungen und verschachtelte Ebenen hinweg zurück.
Beispiele
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")).execute().get();
Go
// Count all documents in the database snapshot := client.Pipeline(). Database(). Aggregate(firestore.Accumulators(firestore.CountAll().As("total"))). Execute(ctx)
Verhalten
Die Phase database(...) muss als erste Phase in der Pipeline verwendet werden.
Die Reihenfolge der von der Phase database(...) zurückgegebenen Dokumente ist nicht stabil und kann sich ändern. Mit einer nachfolgenden sort(...) Phase
kann eine deterministische Reihenfolge erzielt werden.
Beispiel für die folgenden Dokumente:
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});
Mit der Phase database(...) können alle Dokumente in der Datenbank abgerufen werden.
Node.js
const results = await db.pipeline()
.database()
.sort(field("population").ascending())
.execute();
Diese Abfrage erzeugt die folgenden Dokumente:
{ name: "San Francsico", state: "California", population: 800000 }
{ name: "California", population: 39000000 }
{ name: "United States of America", population: 340000000 }