在Firestore中,如何获取集合中的文档总数?
例如,如果我有
/people
/123456
/name - 'John'
/456789
/name - 'Jane'
我想查询我有多少人,得到2。
我可以对/ people进行查询,然后获取返回结果的长度,但这似乎很浪费,特别是因为我将在更大的数据集上执行此操作。
您目前有3种选择:
这基本上就是您提到的方法。从集合中全选并在客户端计数。这对于小型数据集已经足够好了,但是如果数据集更大的话显然是行不通的。
通过这种方法,您可以使用Cloud Functions为集合中的每个添加和删除操作更新计数器。
只要添加/删除仅以每秒小于或等于1的速率进行,这对任何数据集大小都适用。这使您可以阅读一个文档,从而立即获得几乎最新的计数。
如果需要超过每秒1个,则需要根据我们的文档实施分布式计数器。
在客户端中,您可以在添加或删除文档的同时更新计数器,而不是使用Cloud Functions。这意味着计数器也将是最新的,但是您需要确保在添加或删除文档的任何地方都包含此逻辑。
像选项2一样,如果要超过每秒,则需要实现分布式计数器
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句