我在firebase中有一个名为 orders 的数据库对象,其结构如下
现在,我正在尝试根据书名过滤结果,以返回具有特定书名的订单。 我在服务中使用以下代码,该代码返回给我所选的书。 如何通过过滤后的书找回整个对象。
this.db.list('/orders')
.valueChanges()
.pipe(mergeMap(x => x))
.pipe(mergeMap( y => y['items'] as []),
filter( y => {
if(y.book.title == "Harry Potter - The Complete Collection")
return y;
})
)
.subscribe(result => console.log(result));
}
答案 0 :(得分:0)
创建单独的过滤器功能,接受订单并过滤其购买书名
const hasBookByTitle = bookTitle => filter(order => order.items.some(({book}) => book.title === bookTitle))
this.db.list('/orders')
.valueChanges()
.pipe(hasBookByTitle("Harry Potter - The Complete Collection"))
.subscribe(result => console.log(result));