我的收藏集中有两个文件:
execute statement ... on external data source ...
和:
{
"ViewAll": true,
"GroupIDs": []
}
我希望以下查询返回两个文档:
{
"ViewAll": false,
"GroupIDs": ["super-admin"]
}
但是我只取回第二份文档。
在处理查询时,我注意到,如果我排除了WHERE子句但保留了JOIN,它仍然将结果集限制为仅具有GroupID的结果集。
SELECT VALUE c FROM c
JOIN groupIDs in c.GroupIDs
WHERE (c.ViewAll = true OR groupIDs IN("super-admin"))
因为GroupIDs数组中没有条目,所以JOIN是否限制了结果集?有没有办法得到我想要的结果?
答案 0 :(得分:1)
因为没有条目,所以JOIN是否限制了结果集 GroupIDs数组?
答案是“是”。因此,也许您可以使用ARRAY_CONTAINS代替JOIN来实现您的要求。
SELECT VALUE c FROM c
where c.ViewAll = true or ARRAY_CONTAINS(c.GroupIDs, "super-admin",true)
输出:
此外,您可以参考我以前的案例:cosmos db query self join with null array