使用Angularfire2从Firestore提取的数据分组

时间:2019-05-30 06:59:36

标签: angular database google-cloud-firestore angularfire2

功能:

我有一个Angular项目,必须为它生成一个显示invoiceDate vs saleAmount的图形。从发票收集中获取数据。

var invoiceRef = this.afs.collection<Invoice>('invoices', 
    ref=> ref.orderBy('creationDate','desc'));

我在这里获取每张发票的saleAmount和invoiceDate。

问题

如何计算每个发票日期的salesAmount?

在传统SQL中,您将编写类似

SELECT COUNT(saleAmount) FROM invoice GROUP BY invoiceDate;

如何使用angularfire查询进行Firestore操作?

1 个答案:

答案 0 :(得分:1)

不确定可以直接从Firestore查询中完成此操作,但是您可以实现一个函数,在获取数据后(或之前,使用cloud functions)执行此操作。

它看起来像这样:

const groupedInovices = {};
invocies.forEach((inovice) => {
      groupedInovices[invoice.date] = groupedInovices[invoice.date] ? groupedInovices[invoice.date]++ : 1;
    });

您最终将得到一个看起来像这样的对象:

{
  "05/30/2019": 20
  "05/29/2019: 13
}