Ответ 1
Вам следует использовать предложение DocumentDB JOIN
, которое работает в битве RDBM немного иначе, чем JOIN
(так как DocumentDB использует w/denormlaized модель данных документов без схемы).
Проще говоря, вы можете думать о DocumentDB JOIN
как о самосоединениях, которые могут использоваться для формирования кросс-продуктов между вложенными объектами JSON.
В контексте запроса детей, чьи имена животных называются "Goofy", вы можете попробовать:
SELECT
f.id AS familyName,
c AS child,
p.givenName AS petName
FROM Families f
JOIN c IN f.children
JOIN p IN c.pets
WHERE p.givenName = "Goofy"
Что возвращает:
[{
familyName: WakefieldFamily,
child: {
familyName: Merriam,
givenName: Jesse,
gender: female,
grade: 1,
pets: [{
givenName: Goofy
}, {
givenName: Shadow
}]
},
petName: Goofy
}]
Ссылка: http://azure.microsoft.com/en-us/documentation/articles/documentdb-sql-query/
Edit:
Вы также можете использовать функцию ARRAY_CONTAINS
, которая выглядит примерно так:
SELECT food.id, food.description, food.tags
FROM food
WHERE food.id = "09052" or ARRAY_CONTAINS(food.tags.name, "blueberries")