DocumentDB - 集合中的WHERE子句

时间:2017-03-03 20:46:51

标签: azure-cosmosdb

给出一个类似于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
}

我们可以看到有一个子集合children包含一系列文档。

让我们说我想用SELECT ... FROM ... WHERE ...类型语法编写一个查询,我将如何编写查询以查找有任何女儿的家庭(任何有性别的孩子"女性&# 34)

类似

SELECT c.id
FROM c
WHERE c.children.contains(  // I'm stuck!

我想知道我是否错过JOIN或者其他什么,但说实话,我不确定我从哪里开始,我很难找到任何有用的东西在谷歌,部分是因为我不确定如何表达我的搜索!

1 个答案:

答案 0 :(得分:1)

您需要JOIN关键字来展开孩子,然后对性别应用过滤器,如下面的查询:

SELECT f.id
FROM family f
JOIN child IN f.children
WHERE child.gender = "female"