Firestore查询结果按region分组 重复区域对应gender值存入数组实现方法
实现方法
你只需要额外定义一个对象存储分组结果,在遍历文档的时候做追加处理即可,修改后的完整代码如下:
// 初始化空对象用于存储分组结果 const regionGenderMap = {} module.where("gender", "array-contains", 'female') .get() .then((querySnapshot) => { querySnapshot.forEach((doc) => { const data = doc.data() // 统一转小写避免大小写不同导致分组错误 const regionKey = data.region[0].toLowerCase() const genderVal = data.gender[0] // 若当前region未在分组中存在,先初始化空数组 if(!regionGenderMap[regionKey]) { regionGenderMap[regionKey] = [] } // 把当前gender追加到对应region的数组里 regionGenderMap[regionKey].push(genderVal) }) // 遍历结束后可直接打印查看最终分组结果 console.log(regionGenderMap) }) .catch((error) => { console.log("Error getting documents: ", error); });
结果说明
最终得到的regionGenderMap结构就是你需要的分组效果,示例结构如下:
{ "beijing": ["female", "female", "female"], "shanghai": ["female", "female"] }
如果需要单独取某个region的gender数组,直接通过regionGenderMap['你的region名']即可访问。
内容的提问来源于stack exchange,提问作者EMT
相关产品推荐
相关产品推荐

