我正在尝试动态生成查询。
我有一个诸如位置和价格数据之类的重要对象。但是我从请求中获取数据。如果每个查询内容都是链接的功能,我该如何动态使用该数据?
理想情况下,我想转换这样的东西...
const wheres = [
{ key: 'price', operator: '>=', value: '1000' },
{ key: 'price', operator: '<=', value: '2000' }
]
... to ...
admin
.firestore()
.collection(`rentals`)
.where(`price`, `>=`, `1000`)
.where(`price`, `<=`, `2000`)
您不必直接链接所有内容。用于构建查询的构建器模式将每个调用的查询实例返回到Where()()(以及其他过滤方法)。您编写的代码等同于此:
const collection = admin.firestore().collection('rentals')
var query = collection.where('price', '>=', '1000')
query = query.where('price', '<=', '2000')
您可以随心所欲地继续使用query
。因此,您应该能够在循环或任何适合您的要求的循环中继续增加它的约束。