我有一个集合" 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"集合中的所有文档,其中"字符串"为至少一个值" bar"数组中的对象,以及所有具有" string2"的文档作为" bar"数组中至少一个对象的值的集合。
这甚至可能吗?我在这方面挣扎了很多,因此,任何帮助都将不胜感激。如果需要,我也很高兴更改DB模式,完全接受建议!
您无法使用单个查询执行此操作,因为Firestore当前不支持逻辑或条件。换句话说,您不能有一个查询,可以为您提供所有文档,其中一组条件是正确的。
另外,您需要能够在文档中召集特定字段,以对其进行查询。如果没有特定的字段,查询将无法使用索引来加快速度,并且查询永远不会在Firestore提供的范围内扩展。