使用JavaScript统计Firestore中符合特定字段条件的文档数量
解决方案
你当前的代码逻辑是遍历所有匹配到的文档,逐个打印valid字段值,所以匹配到2条符合条件的文档时就会输出2次yes。要直接获取总数量,直接读取查询返回的快照对象自带的计数属性即可。
小数据量场景方案(匹配文档规模较小)
直接读取查询快照的size属性获取总数,无需遍历文档:
db.collection('users').where('valid', '==', 'yes').get().then(snapshot => { const validCount = snapshot.size; console.log(validCount); // 匹配2条时直接输出2 });
该方案会拉取所有匹配文档的全量数据,计数本身不额外收费,但会按匹配文档数消耗读配额,适合匹配数据量小的场景。
大数据量场景优化方案
如果匹配的文档量级较大,可使用云端计数接口,无需拉取文档内容,仅消耗1次读配额即可得到总数:
db.collection('users').where('valid', '==', 'yes').count().get().then(res => { const validCount = res.data().count; console.log(validCount); });
内容的提问来源于stack exchange,提问作者Ian Barber
相关产品推荐
相关产品推荐

