首頁 > Java > java教程 > 如何使用 count() 方法有效地計數 Firestore 文件?

如何使用 count() 方法有效地計數 Firestore 文件?

Patricia Arquette
發布: 2024-11-25 22:25:20
原創
311 人瀏覽過

How to Efficiently Count Firestore Documents Using the `count()` Method?

如何使用Firestore 的count() 方法對集合中的文檔進行計數

在Firestore 中,沒有像getDocumentCount() 這樣的顯式方法計算集合中的文件數量。然而,引入了一種名為 count() 的新方法來簡化計數操作。

使用count() 方法

import com.google.cloud.firestore.Query;
import com.google.cloud.firestore.QueryDocumentSnapshot;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;

CompletableFuture<Long> future = new CompletableFuture<>();
Query query = db.collection("Posts");
query.get().addCallback(
    queryDocumentSnapshots -> {
      Long count = 0L;
      for (QueryDocumentSnapshot document : queryDocumentSnapshots.getDocuments()) {
        count++;
      }
      future.complete(count);
    },
    throwable -> future.complete(throwable)
);
// Retrieve the count asynchronously
try {
  Long count = future.get();
  System.out.println("Number of posts: " + count);
} catch (InterruptedException | ExecutionException e) {
  System.out.println("Error counting posts: " + e.getMessage());
}
登入後複製

的優點數數()方法

  • 可擴充:
  • count()方法執行聚合,無需手動計數,這對於大型集合特別有利。
  • 高效率:
  • 只讀取索引條目而不讀取實際文檔,減少資料量正在取得。
  • 一致:
  • 傳回的計數是準確的,因為它指的是查詢時集合的狀態。

替代解決方案

  • 將Cloud Functions 與計數器:
  • 每次建立或刪除新文件時,雲函數可用於增加儲存在單獨文件中的計數器。這種方法允許高速計數,但受到寫入時間盡力而為的限制。
  • 維護客戶端計數器:
  • 事務可用於更新本地計數器客戶端在新增或刪除文件時,確保準確性。但是,它需要額外的邏輯和仔細的實作。
  • 輪詢:
  • 定期查詢集合併計算結果可以提供文件計數的估計,但它可能會引入延遲並增加讀取操作.

以上是如何使用 count() 方法有效地計數 Firestore 文件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板