DocumentDB - 集合中的 WHERE 子句
DocumentDB - WHERE clause within collection
给定一个来自 Microsoft 示例的示例文档:
{
"id": "AndersenFamily",
"lastName": "Andersen",
"parents": [
{ "firstName": "Thomas" },
{ "firstName": "Mary Kay"}
],
"children": [
{
"firstName": "Henriette Thaulow",
"gender": "female",
"grade": 5,
"pets": [{ "givenName": "Fluffy" }]
}
],
"address": { "state": "WA", "county": "King", "city": "seattle" },
"creationDate": 1431620472,
"isRegistered": true
}
我们可以看到有一个sub-collectionchildren
包含了一个文档数组
假设我想使用 SELECT ... FROM ... WHERE ...
类型语法编写一个查询,我将如何编写一个查询来查找有任何女儿的家庭(任何 children 性别 "female")
所以像
SELECT c.id
FROM c
WHERE c.children.contains( // I'm stuck!
我想知道我是否遗漏了 JOIN
或其他东西,但老实说我不确定我从这里去哪里,我正在努力寻找 Google 中的任何有用信息部分原因是我不确定如何表达我的搜索!
您需要 JOIN
关键字来展开 children,然后像下面的查询一样应用性别过滤器:
SELECT f.id
FROM family f
JOIN child IN f.children
WHERE child.gender = "female"
给定一个来自 Microsoft 示例的示例文档:
{
"id": "AndersenFamily",
"lastName": "Andersen",
"parents": [
{ "firstName": "Thomas" },
{ "firstName": "Mary Kay"}
],
"children": [
{
"firstName": "Henriette Thaulow",
"gender": "female",
"grade": 5,
"pets": [{ "givenName": "Fluffy" }]
}
],
"address": { "state": "WA", "county": "King", "city": "seattle" },
"creationDate": 1431620472,
"isRegistered": true
}
我们可以看到有一个sub-collectionchildren
包含了一个文档数组
假设我想使用 SELECT ... FROM ... WHERE ...
类型语法编写一个查询,我将如何编写一个查询来查找有任何女儿的家庭(任何 children 性别 "female")
所以像
SELECT c.id
FROM c
WHERE c.children.contains( // I'm stuck!
我想知道我是否遗漏了 JOIN
或其他东西,但老实说我不确定我从这里去哪里,我正在努力寻找 Google 中的任何有用信息部分原因是我不确定如何表达我的搜索!
您需要 JOIN
关键字来展开 children,然后像下面的查询一样应用性别过滤器:
SELECT f.id
FROM family f
JOIN child IN f.children
WHERE child.gender = "female"