我在firestore中有一个book
集合,根据设计,每个文档都有一个id
(例如,它的整数ID,例如0、1、2 ..);我想通过过滤文档id
的 random 集合来查询该集合,例如[2,5,23,54],请注意,这些ID是随机的,因此我不能使用isGreaterThan
之类的范围过滤器。
我想避免为每个过滤后的ID查询一次,因为它可能会读取数据库太多次(这可能会花费很多)。
我尝试使用Firestore.instance.collection('book')where('id', array_contains:[ filtered id])
,但是由于id
不是集合字段,因此无法使用。
答案 0 :(得分:1)
当前,您无法在or
中进行array_contains
查询,这绝对是人们想要的功能,因此id建议记录您的feature request with support。但是,与此同时,因为您的查询不会相交,所以只执行单个查询并将结果汇总到一个主数组中的成本相同。不确定您的语言是否可以举一个例子,但是它只是在您的例子中执行4个查询,并让它们全部更新一个主数组。