我有一个集合“foo”。集合中的每个文档都有一个属性/字段“bar”,它是一个对象数组,如下所示:
foo = [{
bar: [{
id: "random_string",
"status": "string"
}, {
id: "random_string",
"status": "string2"
}]
}, {
bar: [{
id: "random_string",
"status": "string"
}, {
id: "random_string",
"status": "string2"
}]
}]
我想要实现的是我希望能够查询数据库以便我可以获得两个不同的集合,其中一个集合包含“foo”集合中的所有文档,其中“string”作为至少一个值“bar”数组中的对象,以及“string2”作为“bar”数组中至少一个对象的值的所有文档的另一个集合。
这甚至可能吗?我对这个问题苦苦挣扎,所以任何帮助都会非常感激。如果需要,我也很乐意更改数据库架构,完全接受建议!
答案 0 :(得分:1)
您无法通过单个查询执行此操作,因为Firestore目前不支持逻辑OR条件。换句话说,您无法通过查询为您提供所有条件中任何一个条件为真的所有文档。
此外,您需要能够调出文档中的特定字段才能对其执行查询。如果没有要使用的特定字段,查询就无法使用索引来加快速度,并且查询永远不会按照Firestore提供的大小进行扩展。