Maison > Java > javaDidacticiel > Comment compter efficacement les documents Firestore à l'aide de la méthode `count()` ?

Comment compter efficacement les documents Firestore à l'aide de la méthode `count()` ?

Patricia Arquette
Libérer: 2024-11-25 22:25:20
original
308 Les gens l'ont consulté

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

Comment compter les documents dans une collection à l'aide de la méthode count() de Firestore

Dans Firestore, il n'existe pas de méthode explicite comme getDocumentCount() pour compter le nombre de documents dans une collection. Cependant, une méthode plus récente appelée count() a été introduite pour rationaliser les opérations de comptage.

Utilisation de la méthode 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());
}
Copier après la connexion

Avantages de la Méthode count()

  • Scalable : La méthode count() effectue l'agrégation, éliminant le besoin de comptage manuel, ce qui est particulièrement bénéfique pour les grandes collections.
  • Efficace : Il lit uniquement les entrées d'index et non les documents réels, réduisant ainsi la récupération de données.
  • Cohérent : Le décompte renvoyé est exact car il fait référence à l'état de la collection au moment de la collecte. requête.

Solutions alternatives

  • Utilisation de Cloud Functions avec un compteur : Les Cloud Functions peuvent être utilisées pour incrémenter un compteur stockés dans un document distinct à chaque fois qu'un nouveau document est créé ou supprimé. Cette approche permet un comptage à grande vitesse, mais est soumise à des limitations de temps d'écriture.
  • Maintenir un compteur côté client : Les transactions peuvent être utilisées pour mettre à jour un compteur local sur côté client lors de l’ajout ou de la suppression de documents, garantissant ainsi l’exactitude. Cependant, cela nécessite une logique supplémentaire et une mise en œuvre minutieuse.
  • Interrogation :Interroger régulièrement la collection et compter les résultats peut fournir une estimation du nombre de documents, mais cela peut introduire une latence et une augmentation des opérations de lecture. .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal