firebase - 如何重命名 Firestore json 文档中的父标签?
问题描述
我需要了解 Firestore json 文档中的不同标签。标签的命名如下:d1、d2、d3 等,并具有一些值,如“自动”、“品牌”、“手动”等。我希望能够将这些键 (d1、d2、d3) 重命名为更好的键例如“品牌名称”、“类别”等,具体取决于这些键在我的集合中的所有文档中所持有的值。如何识别 Firestore 文档中每个键(父标记)的含义?这可以通过创建索引来实现吗?
解决方案
所以我的理解是,你想计算文档集合中给定字段的最常见值是什么。您不能像在 SQL 中那样使用查询来做到这一点,Firestore 中没有计数函数。
我看到两个选项:
- 您提取所有文件并计算它们。显然,如果您多次这样做,读取将非常昂贵
您在创建文档时增加一个计数器,然后在此计数器上进行排序。您构建计数器的方式取决于您的要求:
a) 它们可能都在一个文档中
b)或者您可以有一个计数器集合和每个字段 1 个文档(d1、d2、d3)
c)或者您可以每个字段有一个集合,然后每个值有一个计数器(最具可扩展性)。
d) ...
编辑:关于选项 2 的更多细节
计数器创建:每次创建文档时,您都会增加计数器。例如:对于选项 2.b 和一个新文档 = {d1: "Automatic, d2: "Brand } 你可以像这样增加计数器
colref.doc("d1").set({Automatic: firebase.firestore.FieldValue.increment(1), { merge: true } colref.doc("d2").set({Brand: firebase.firestore.FieldValue.increment(1), { merge: true }
一般来说:
colref.doc(field).set({[fieldvalue]: firebase.firestore.FieldValue.increment(1), { merge: true }
- 查询:对于 2.a 和 2.b,您需要自己提取文档并对其进行排序,对于 2.c,您可以对每个字段使用控制台
推荐阅读
- php - Laravel Eloquent - 从子模型访问父模型返回子模型
- spring - JPA:映射地图
> - android - 设备显示屏上的 Espresso UI 测试表情符号
- python-3.x - 如何使用 itertools 组合功能创建列表列表?
- javascript - 表单输入字段之间的计算
- php - mysqli::__construct(): (HY000/1045): Access denied for user 'username'@'localhost' (使用密码: YES)
- c# - 无法修改“ParticleSystem.shape”的返回值,因为它不是变量
- periscope - 用于检查 Periscope 用户是否在线的 API
- javascript - $ 未定义,即使脚本在 Webpack 包之后
- python - 如何获取带有实体的格式化文本?