Cosmos DB查询语法WHERE子句,其中的数组为数组

时间:2019-12-03 17:32:22

标签: azure-cosmosdb

以下json代表Cosmos DB容器中的两个文档。 我该如何编写一个查询,以获取具有itemid,值为item_1的{​​{1}}的任何文档。

我已经研究过bar,但是不要让它与数组中的数组一起使用。 Als我已经尝试使用ARRAY_CONTAINS进行某些操作。尽管我似乎找不到任何有关如何使用它的文档,但是any似乎是有效的函数,因为我确实在Azure Portal的cosmos db资源管理器中获得了formatting highlights。 对于any函数,我尝试了类似any的事情。

id字段是唯一的,因此,如果更容易找到包含具有正确id和值的对象的任何文档,那也可以。

SELECT * FROM c WHERE c.pages.any(p, p.items.any(i, i.id = "item_1" AND i.value = "bar"))

1 个答案:

答案 0 :(得分:0)

我认为join可以处理WHERE clause with array in array。请在sql下方进行测试:

SELECT c.id FROM c
join pages in c.pages
where array_contains(pages.items,{"id": "item_1","value": "bar"},true)

输出:

enter image description here