قاعدة البيانات

الوصف

تعرض هذه الدالة جميع المستندات في قاعدة بيانات على مستوى مجموعات مختلفة ومستويات متداخلة.

أمثلة

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();
متابعة
// Count all documents in the database
snapshot := client.Pipeline().
	Database().
	Aggregate(firestore.Accumulators(firestore.CountAll().As("total"))).
	Execute(ctx)

السلوك

لاستخدام المرحلة database(...)، يجب أن تظهر كالمرحلة الأولى في مسار العمل.

إنّ ترتيب المستندات التي يتم عرضها في المرحلة database(...) غير ثابت ولا يمكن الاعتماد عليه. يمكن استخدام مرحلة sort(...) لاحقة للحصول على ترتيب قطعي.

على سبيل المثال، بالنسبة إلى المستندات التالية:

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

يمكن استخدام مرحلة database(...) لاسترداد جميع المستندات في قاعدة البيانات.

Node.js

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

ينتج عن طلب البحث هذا المستندات التالية:

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