firebase - 在 Cloud Firestore 中查询集合时,我可以遍历对象类型文档字段吗?
问题描述
我有一个集合“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”数组中至少一个对象的值的所有文档的另一个集合。
这甚至可能吗?我为此付出了很多努力,因此将不胜感激任何帮助。如果需要,我也很乐意更改数据库架构,完全愿意接受建议!
解决方案
您无法通过单个查询执行此操作,因为 Firestore 当前不支持逻辑 OR 条件。换句话说,您不可能有一个查询,它可以为您提供一组条件中的任何一个为真的所有文档。
此外,您需要能够调用文档中的特定字段才能对其执行查询。如果没有要使用的特定字段,查询就无法使用索引来加快速度,并且查询永远不会以 Firestore 提供的幅度进行扩展。
推荐阅读
- android - 无法使用 Facebook 应用广告助手在我的应用中获取 Facebook 延迟深层链接
- swift - 如何从解析 Ios 中获取对象 ID
- java - 字符串拆分与操作
- sql - 我在 Poweshell 中的 SQL 语句中的关键字“like”被视为“=”符号
- python - 按消费者分发芹菜工人
- z3 - 来自 API 的未饱和核心
- c# - 如何在 C# 中创建用于下载的 csv 文件并将列类型设置为文本
- javascript - 将图像显示为变量
- jquery - 设置一个元素的顶部值等于导航栏的高度
- here-api - 从笛卡尔坐标转换到 Here.com 瓷砖时的阶梯式