2016-11-18 3 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

Спасибо - я исправил предыдущий ответ –

 Смежные вопросы

  • Нет связанных вопросов^_^