【发布时间】:2020-01-21 05:40:09
【问题描述】:
我有一个 Firestore 数据库,其中包含以下字段:day、morning、afternoon、night,在此期间一天中的时间是数字用法。
我正在尝试使用此代码来平均每天 morning 等的值(sunday,monday,...)。
import { Subscriber, Observable, from } from 'rxjs';
import { map, filter, toArray, reduce, switchMap, groupBy } from 'rxjs/operators';
import * as _ from 'lodash';
...
groupedData: any = [];
meter:Observable<any>;
meterId: string;
ngOnInit() {
this.meter = this.db.collection('meters').doc(this.meterId).collection('data').valueChanges();
from(this.meter)
.groupBy(x => x.day)
.flatMap(group => group.toArray())
.map(g => {
return {
day: g[2].day,
morning: _.sumBy(g, 'morning'),
afternoon: _.sumBy(g, 'afternoon'),
night: _.sumBy(g, 'night'),
}
})
.toArray()
.subscribe(d => this.groupedData = d);
}
我收到Property 'groupBy' does not exist on type 'Observable<any>'.的错误
我想我正试图从早期版本的 Angular/RxJS 代码中调整它,但失败得很惨。我真的很感激任何帮助。谢谢。
【问题讨论】:
标签: angular google-cloud-firestore rxjs