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"