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

sat*_*r V 7 c# json get azure-cosmosdb

假设我在DocumentDB中有3个这样的对象.

这是班级记录.

而现在我希望得到一个名字阳光明媚的学生所在的所有Id.

{
  "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"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

获得结果的查询是什么?

And*_*Liu 8

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

例如,以下查询在文档上创建一个跨产品,其 students属性可用于查询students.name:

select doc.id
from doc
join students in doc.students
where students.name = 'sunny'
Run Code Online (Sandbox Code Playgroud)

返回以下数据集:

[{
    id: 111
}, {
    id: 222
}]
Run Code Online (Sandbox Code Playgroud)

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

  • Satish,你可能想看一下[QueryDB的DocumentDB](http://www.documentdb.com/sql/demo),它提供了针对预定义数据运行的示例查询,如果你有类似的话可能会有用未来的问题. (4认同)