首页 > 解决方案 > 如何重命名 Firestore json 文档中的父标签?

问题描述

我需要了解 Firestore json 文档中的不同标签。标签的命名如下:d1、d2、d3 等,并具有一些值,如“自动”、“品牌”、“手动”等。我希望能够将这些键 (d1、d2、d3) 重命名为更好的键例如“品牌名称”、“类别”等,具体取决于这些键在我的集合中的所有文档中所持有的值。如何识别 Firestore 文档中每个键(父标记)的含义?这可以通过创建索引来实现吗?

标签: firebasegoogle-cloud-platformgoogle-cloud-firestore

解决方案


所以我的理解是,你想计算文档集合中给定字段的最常见值是什么。您不能像在 SQL 中那样使用查询来做到这一点,Firestore 中没有计数函数。

我看到两个选项:

  1. 您提取所有文件并计算它们。显然,如果您多次这样做,读取将非常昂贵
  2. 您在创建文档时增加一个计数器,然后在此计数器上进行排序。您构建计数器的方式取决于您的要求:

    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,您可以对每个字段使用控制台

推荐阅读