如何重命名Firestore json文档中的父标签?

问题描述 投票:1回答:1

我有一个要求,以了解不同的标签在我的Firestore json文档。标签命名为:d1,d2,d3等,并有一些值,如'自动','品牌','手动'等。我希望能够将这些键(d1,d2,d3)重命名为更好的键,如'品牌名称','类别'等,这取决于这些键在我的集合中的所有文档中的值。我如何确定每个键(父标签)在Firestore文档中表示什么?这可以通过创建索引来实现吗?

firebase firebase-realtime-database google-cloud-platform google-cloud-firestore
1个回答
3
投票

所以我的理解是,你想计算一个文档集合中给定字段的最频繁的值是什么。你不能只是做一个查询,就像你在SQL中,有没有在Firestore计数功能。

我看到两个选项。

  1. 你把所有的文档拉出来,然后对它们进行计数。很明显,如果你这样做几次,它将是非常昂贵的读数
  2. 在创建文档时,您可以递增一个计数器,之后根据这个计数器进行排序。计数器的结构方式取决于你的要求。

    a) 它们可以全部放在一个文档中

    b) 或者你可以有一个计数器集合,每个字段有一个文件(d1, d2, d3)。

    c) 或者你可以每个字段有一个集合,然后每个值有一个计数器(最可扩展)。

    d) ...

EDIT: 关于选项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,你可以使用控制台对每一个字段进行分类。
© www.soinside.com 2019 - 2024. All rights reserved.