<分区>
在 Firestore 中,如何获取集合中的文档总数?
例如如果我有
/people
/123456
/name - 'John'
/456789
/name - 'Jane'
我想查询我有多少人,得到2。
我可以对/people 进行查询,然后获取返回结果的长度,但这似乎是一种浪费,尤其是因为我将在更大的数据集上执行此操作。
<分区>
在 Firestore 中,如何获取集合中的文档总数?
例如如果我有
/people
/123456
/name - 'John'
/456789
/name - 'Jane'
我想查询我有多少人,得到2。
我可以对/people 进行查询,然后获取返回结果的长度,但这似乎是一种浪费,尤其是因为我将在更大的数据集上执行此操作。
最佳答案
您目前有 3 个选择:
这基本上就是您提到的方法。从集合中选择所有并在客户端计数。这对于小型数据集来说效果很好,但如果数据集较大,则显然不起作用。
通过这种方法,您可以使用 Cloud Functions 为集合中的每次添加和删除更新计数器。
这适用于任何数据集大小,只要添加/删除仅以小于或等于每秒 1 次的速率发生。这为您提供了一个可供阅读的文档,以立即为您提供几乎最新的计数。
如果需要超过每秒1个,需要实现distributed counters per our documentation .
在您的客户端中,您可以在添加或删除文档的同时更新计数器,而不是使用 Cloud Functions。这意味着计数器也将是最新的,但您需要确保在添加或删除文档的任何地方都包含此逻辑。
和选项 2 一样,如果你想超过每秒,你需要实现分布式计数器
关于database - 如何使用 Cloud Firestore 计算集合中文档的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46553314/
相关文章:
android - ContentValues 数组中的重复 ContentValues
android - Crashlytics 自定义键未出现在崩溃中
firebase - 在Flutter中从Firebase FireCloud接收数据时,不会执行StreamBuilder中的快照代码
database - Django - 设计模型关系 - 管理界面和内联
Angular 6 - '"/node_modules/firebase/index "' has no exported member ' 函数'
android - db.collection().document().get() 从不返回 null