使用 Angularfire2 对从 firestore 获取的数据进行分组
Grouping of data fetched from firestore using Angularfire2
功能:
我有一个 Angular 项目,我必须为其生成一个图表,显示 invoiceDate 与 saleAmount。数据是从发票集合中提取的。
var invoiceRef = this.afs.collection<Invoice>('invoices',
ref=> ref.orderBy('creationDate','desc'));
我在这里获取每张发票的销售金额和发票日期。
问题
如何计算每个发票日期的销售额?
在传统的 SQL 中,你会写成
SELECT COUNT(saleAmount) FROM invoice GROUP BY invoiceDate;
如何使用 angularfire 查询 firestore 来做同样的事情?
不确定是否可以直接从 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
}
功能:
我有一个 Angular 项目,我必须为其生成一个图表,显示 invoiceDate 与 saleAmount。数据是从发票集合中提取的。
var invoiceRef = this.afs.collection<Invoice>('invoices',
ref=> ref.orderBy('creationDate','desc'));
我在这里获取每张发票的销售金额和发票日期。
问题
如何计算每个发票日期的销售额?
在传统的 SQL 中,你会写成
SELECT COUNT(saleAmount) FROM invoice GROUP BY invoiceDate;
如何使用 angularfire 查询 firestore 来做同样的事情?
不确定是否可以直接从 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
}