Je dois ajouter un champ à chaque document d'une très grande collection dans Firestore via le SDK d'administration pour node.js. Certains des documents ont déjà le champ, je dois donc vérifier sa valeur avant de le configurer/mettre à jour. La collection est d'environ 150 000 documents. Même essayer d'obtenir les documents avec le code ci-dessous expire.

  const documents = await db.collection('collectionName').get()

Existe-t-il une manière particulière de gérer les très grandes collections ?

1
Raph 30 oct. 2020 à 18:49

1 réponse

Meilleure réponse

Vous devez utiliser la paginationafin d'éviter de charger tous les documents en mémoire avec une seule requête. Cela vous permettra de traiter les documents par lots en spécifiant le dernier instantané de document vous avez vu dans la requête précédente afin de faire une nouvelle requête pour obtenir la page de données suivante.

Vous voudrez placer une limite raisonnable sur chaque requête pour vous assurer que vous obtenez un nombre raisonnable de documents dans chaque page.

2
Doug Stevenson 30 oct. 2020 à 15:54