通过按角度分组Firestore中的字段值进行计数

问题描述

我试图从firestore数据库中按角度分组相似值的计数,但对我没有用。在这里初始化了空余额和余额数组。 请帮我解决此问题。

这是我的工作代码


this.db.collection('asset_master',ref => ref.orderBy('part_name')).valueChanges().subscribe(res => res.map(
  data => {// checking the value with arrary value
      if ( this.balances.some(check => check.part_name === data['part_name']) && this.balances.some(check => check.model_name === data['model_name']) && this.balances.some(check => check.manufacturer === data['manufacturer'])) { 
      // getting index value of matched value.
      let index = this.balances.findindex(d => d.part_name === data['part_name']);
      console.log('in if condition index array value',this.balances[index].part_name);
      this.balances[index].count += 1;
    } else {
      console.log('in else condition value is',data['part_name']);
      this.balance = {'asset_type': data['asset_type'],'part_name': data['part_name'],'model_name': data['model_name'],'manufacturer':data['manufacturer'],'count': 1}
      this.balances.push(this.balance);
    }
  }
)
);

Firestore数据库结构为:

Collection:        Document:                  Collection:
assset_master      fhjhgjhggh65yt765ty7      asset_type: IT
                                             part_name: SMPS
                                             asset_type: IT
                                             part_name: HARdisK
                                             asset_type: IT
                                             part_name: SMPS

必需的输出应为:

     SMPS       2
     HARdisK    4

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)