【发布时间】:2020-08-16 04:45:28
【问题描述】:
我在 Firestore 中的不同文档中有一个数组,如下所示:
颜色: [蓝、红、绿]
我想查询以找到与我的输入相匹配的文档,颜色:[Red, Green, Blue]。但它不应返回包含更多内容的文档,即 [Blue, Red, Green, Yellow]。它必须是完全匹配的,但我不一定知道数组中项目的顺序。这甚至可能吗?
【问题讨论】:
我在 Firestore 中的不同文档中有一个数组,如下所示:
颜色: [蓝、红、绿]
我想查询以找到与我的输入相匹配的文档,颜色:[Red, Green, Blue]。但它不应返回包含更多内容的文档,即 [Blue, Red, Green, Yellow]。它必须是完全匹配的,但我不一定知道数组中项目的顺序。这甚至可能吗?
【问题讨论】:
首先,为每个包含数组长度的文档添加一个字段,以便您可以根据数组长度进行过滤。然后为具有正确长度的数组创建一个复合查询,并为每种颜色添加一个“array-contains”子句。
请注意,您要搜索的特定数组不得包含任何重复元素,否则此方法将无法正常工作。
【讨论】:
使用您现在拥有的数据进行一次查询是不可能实现您的要求的。你要么必须:
【讨论】: