Azure DocumentDB ARRAY_CONTAINS嵌套文档

时间:2016-11-18 18:12:24

标签: azure-cosmosdb nosql

似乎嵌套文档上的ARRAY_CONTAINS函数永远不会匹配任何文档。

例如,使用Azure DocumentDB Query Playground尝试以下简单查询将不会返回任何结果,即使某些嵌套文档应与此查询匹配。

SELECT *
FROM food
WHERE ARRAY_CONTAINS(food.tags.name, "blueberries")

Stack Overflow上的这个过去question也暗示这种嵌套查询是有效的。

谢谢

1 个答案:

答案 0 :(得分:5)

ARRAY_CONTAINS的第一个参数必须是数组。例如,在这种情况下,food.tags作为参数有效,但food.tags.name不是。

以下DocumentDB查询都是有效的,可能就是您要查找的内容:

SELECT food
FROM food
JOIN tag IN food.tags
WHERE tag.name = "blueberries"

或者

SELECT food
FROM food
WHERE ARRAY_CONTAINS(food.tags, { name: "blueberries" })