Rumah >Java >javaTutorial >Bagaimana untuk Mengira Dokumen Firestore Dengan Cekap Menggunakan Kaedah `count()`?

Bagaimana untuk Mengira Dokumen Firestore Dengan Cekap Menggunakan Kaedah `count()`?

Patricia Arquette
Patricia Arquetteasal
2024-11-25 22:25:20280semak imbas

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

Cara Mengira Dokumen dalam Koleksi Menggunakan Kaedah count() Firestore

Dalam Firestore, tiada kaedah eksplisit seperti getDocumentCount() untuk mengira bilangan dokumen dalam koleksi. Walau bagaimanapun, kaedah yang lebih baharu dipanggil count() telah diperkenalkan untuk menyelaraskan operasi pengiraan.

Menggunakan Kaedah 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());
}

Kelebihan kaedah count()

  • Boleh skala: Kaedah count() melaksanakan pengagregatan, menghapuskan keperluan untuk pengiraan manual, yang sangat bermanfaat untuk koleksi besar.
  • Cekap: Ia hanya membaca entri indeks dan bukan dokumen sebenar, mengurangkan pengambilan data.
  • Tekal: Kiraan yang dikembalikan adalah tepat seperti ia merujuk kepada keadaan koleksi pada masa pertanyaan.

Penyelesaian Alternatif

  • Menggunakan Fungsi Awan dengan Kaunter : Fungsi Awan boleh digunakan untuk menambah pembilang yang disimpan dalam dokumen berasingan setiap kali dokumen baharu dibuat atau dipadamkan. Pendekatan ini membenarkan pengiraan halaju tinggi, tetapi tertakluk pada had usaha terbaik masa tulis.
  • Mengekalkan Kaunter Sebelah Pelanggan: Transaksi boleh digunakan untuk mengemas kini kaunter tempatan tentang pihak pelanggan semasa menambah atau memadam dokumen, memastikan ketepatan. Walau bagaimanapun, ia memerlukan logik tambahan dan pelaksanaan yang berhati-hati.
  • Tinjauan: Menyoal pengumpulan dan pengiraan keputusan secara kerap boleh memberikan anggaran kiraan dokumen, tetapi ia boleh memperkenalkan kependaman dan peningkatan operasi bacaan .

Atas ialah kandungan terperinci Bagaimana untuk Mengira Dokumen Firestore Dengan Cekap Menggunakan Kaedah `count()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn