Группировка данных, извлеченных из хранилища с помощью Angularfire2 - PullRequest
0 голосов
/ 30 мая 2019

Функциональность:

У меня есть проект Angular, для которого мне нужно сгенерировать график, показывающий invoiceDate против saleAmount.Данные извлекаются из коллекции счетов.

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

Здесь я получаю saleAmount и invoiceDate для каждого счета.

Issue

Howпосчитать количество продаж для каждой даты выставления счета?

В традиционном SQL вы могли бы написать что-то вроде

SELECT COUNT(saleAmount) FROM invoice GROUP BY invoiceDate;

Как сделать то же самое, используя запросы angularfire для firestore?

1 Ответ

1 голос
/ 30 мая 2019

Не уверен, что это можно сделать напрямую из запроса в хранилище, но вы можете реализовать функцию, которая делает это после получения данных (или раньше, с помощью облачных функций ).

Это может выглядеть так:

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

В результате вы получите объект, который выглядит следующим образом:

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