在FiRestore中,如何获取集合中的文档总数?
例如,如果我有
/people
/123456
/name - 'John'
/456789
/name - 'Jane'
我想查询一下我有几个人,可以得到2个人.
我可以对/People执行查询,然后获得返回结果的长度,但这似乎是浪费,特别是因为我将在更大的数据集上执行此操作.
在FiRestore中,如何获取集合中的文档总数?
例如,如果我有
/people
/123456
/name - 'John'
/456789
/name - 'Jane'
我想查询一下我有几个人,可以得到2个人.
我可以对/People执行查询,然后获得返回结果的长度,但这似乎是浪费,特别是因为我将在更大的数据集上执行此操作.
您目前有3个选项:
这基本上就是你提到的方法.在客户端 Select All From Collection(全部来自集合)和Count(计数).对于较小的数据集,这可以很好地工作,但如果数据集较大,则显然不起作用.
使用这种方法,您可以使用云函数为集合中的每次添加和删除更新计数器.
这对于任何数据集大小都很有效,只要添加/删除操作仅以低于或等于每秒1的速度进行即可.这使您可以阅读单个文档,从而立即计算出almost current.
如果需要超过每秒1个,则需要实现distributed counters per our documentation个.
在您的客户端中,您可以在添加或删除文档的同时更新计数器,而不是使用云函数.这意味着计数器也将是最新的,但您需要确保在添加或删除文档的任何位置都包含此逻辑.
与选项2一样,如果希望超过每秒,则需要实现分布式计数器