如何在DocumentDB中根据内部json对象值进行查询?

时间:2015-03-11 11:29:20

标签: c# json get azure-cosmosdb

假设我在DocumentDB中有3个对象。

这是课程记录。

现在,我希望得到所有身份证明,学生名字阳光充足的地方。

{
  "id": "111",
  "class": 1,
  "students": [
    {
      "name": "sunny"
    },
    {
      "name": "pinki"
    },
    {
      "name": "bobby"
    },
    {
      "name": "lucky"
    }
  ]
}

{
  "id": "222",
  "class": 2,
  "students": [
    {
      "name": "pinki"
    },
    {
      "name": "sunny"
    },
    {
      "name": "bobby"
    }
  ]
}

{
  "id": "333",
  "class": 3,
  "students": [
    {
      "name": "pinki"
    },
    {
      "name": "lucky"
    },
    {
      "name": "bobby"
    }
  ]
}

获得结果的查询是什么?

1 个答案:

答案 0 :(得分:8)

您可以使用DocumentDB' JOIN在包含数组元素的文档上创建交叉产品。

例如,以下查询会在文档上创建一个包含students属性的交叉产品,以便在students.name上查询:

select doc.id
from doc
join students in doc.students
where students.name = 'sunny'

返回以下数据集:

[{
    id: 111
}, {
    id: 222
}]

参考:http://azure.microsoft.com/en-us/documentation/articles/documentdb-sql-query/#joins