我有带有简单(字符串)数组属性的文档。
{
"id": "one",
"tags": ["A", "B"]
}
{
"id": "two",
"tags": ["A", "C"]
}
要检查值是否是数组的一部分,我可以使用 ARRAY_CONTAINS
SELECT * FROM c WHERE ARRAY_CONTAINS(c.tags, "B")
将返回文档“一”。
如何查询数组中包含可能值列表的文档?
返回标签数组中至少有一个值为 IN("B", "C") 的所有文档。
-> 文档“一”和“二”
您可以结合JOIN
运算符 ,用于与嵌套数组元素形成叉积,其中IN
操作员。
SELECT docs
FROM docs
JOIN tags IN docs.tags
WHERE tags IN ("B", "C")
请注意,由于您正在创建叉积,因此您将获得每个匹配子元素的结果,而不是每个文档的结果。
或者你可以组合几个ARRAY_CONTAINS
with OR
运算符,或者编写 UDF。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)