2016-11-18 101 views
3

嵌套文檔上的ARRAY_CONTAINS函數似乎從不匹配任何文檔。Azure DocumentDB對嵌套文檔的ARRAY_CONTAINS

例如,使用Azure DocumentDB Query Playground嘗試以下簡單查詢將不會返回任何結果,即使某些嵌套文檔應與此查詢匹配。

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

堆棧溢出剛剛過去的這個question也infered,這種嵌套查詢是有效的。

謝謝

回答

4

的第一個參數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" }) 
+0

謝謝亞拉文,這就是我一直在尋找:) – GeorgCantor

+1

也許這是值得更新您以前的答案http://stackoverflow.com/questions/31022740/documentdb-query-on-nested-document-and-root-level因爲它使用ARRAY_CONTAINS函數沒有數組作爲第一個參數。我沒有足夠的聲譽直接發表評論。 – GeorgCantor

+0

謝謝 - 我修復了以前的答案 –