Tho*_*tzl 10 sql arrays azure-cosmosdb
我有一个简单(字符串)数组属性的文档.
{
"id": "one",
"tags": ["A", "B"]
}
{
"id": "two",
"tags": ["A", "C"]
}
Run Code Online (Sandbox Code Playgroud)
要检查,如果某个值是数组的一部分,我可以使用ARRAY_CONTAINS
SELECT * FROM c WHERE ARRAY_CONTAINS(c.tags, "B")
Run Code Online (Sandbox Code Playgroud)
将返回文件"一".
如何查询包含数组中可能值列表的文档?
返回标签数组中至少有一个值为IN("B","C")的所有文档.
- >文件"一"和"两"
您可以将JOIN
用于与嵌套数组元素形成交叉乘积的IN
运算符与运算符组合在一起.
SELECT docs
FROM docs
JOIN tags IN docs.tags
WHERE tags IN ("B", "C")
Run Code Online (Sandbox Code Playgroud)
请注意,因为您正在创建跨产品,所以您将获得每个匹配的子元素的结果,而不是每个文档的结果.
或者,您可以将多个ARRAY_CONTAINS
与OR
运算符组合在一起,或者编写UDF.