如何限制Firestore查询中的集合数量?

时间:2019-10-03 14:28:52

标签: node.js google-cloud-firestore firebase-admin

我正在尝试创建一个查询,以将文档下的集合复制到Firestore数据库中的另一个路径。

问题是,我的文档内部包含60,000个集合-因此,我正在运行的查询将永久使用(如果成功的话)。

假设这是我现在正在运行的查询:

firestoreCol.doc('docName')
.listCollections()
  .then(cols => { ... });

有没有办法以某种方式划分查询以使其更有效?

1 个答案:

答案 0 :(得分:2)

没有开关可以使数据检索更快。要获得更快的结果,唯一可以做的就是使用更快的连接或检索更少的数据。

例如:很少要处理60,000个集合中的数据。实际上,从大多数NoSQL数据库执行如此广泛的读取操作是一种反模式。更常见的是将聚合数据存储在数据库中,并在每次写入操作时对其进行更新。这样,每次更新您只读取一小部分数据。

如果您需要定期对所有数据进行自定义聚合,则Cloud Firestore可能不是最适合您的要求。在这种情况下,请考虑使用更侧重于动态查询的解决方案,例如BigQuery。