你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:查询适用于 NoSQL 的 Azure Cosmos DB 数据

适用范围: NoSQL

NoSQL 的 Azure Cosmos DB 支持使用内置查询语法查询文档。 本文提供了一个示例文档和两个示例查询和结果。

本文涵盖以下任务:

  • 使用内置查询语法查询 NoSQL 数据

Prerequisites

可以使用 Azure 门户中的 Azure Cosmos DB 资源管理器运行查询。 You can also run queries by using the REST API or various SDKs.

有关查询的详细信息,请参阅 Azure Cosmos DB for NoSQL 中的查询

Sample document

本文中的查询使用下面的示例文档。

{
  "id": "WakefieldFamily",
  "parents": [
    { "familyName": "Wakefield", "givenName": "Robin" },
    { "familyName": "Miller", "givenName": "Ben" }
  ],
  "children": [
    {
      "familyName": "Merriam", 
      "givenName": "Jesse", 
      "gender": "female", "grade": 1,
      "pets": [
          { "givenName": "Goofy" },
          { "givenName": "Shadow" }
      ]
    },
    { 
      "familyName": "Miller", 
        "givenName": "Lisa", 
        "gender": "female", 
        "grade": 8 
    }
  ],
  "address": { "state": "NY", "county": "Manhattan", "city": "NY" },
  "creationDate": 1431620462,
  "isRegistered": false
}

选择所有字段并应用筛选器

在示例家庭文档中,以下查询返回 ID 字段匹配 WakefieldFamily 的文档。 由于它是 SELECT * 语句,因此该查询的输出为完整的 JSON 文档:

Query:

SELECT * 
FROM Families f 
WHERE f.id = "WakefieldFamily"

Results:

{
  "id": "WakefieldFamily",
  "parents": [
    { "familyName": "Wakefield", "givenName": "Robin" },
    { "familyName": "Miller", "givenName": "Ben" }
  ],
  "children": [
    {
      "familyName": "Merriam", 
      "givenName": "Jesse", 
      "gender": "female", "grade": 1,
      "pets": [
          { "givenName": "Goofy" },
          { "givenName": "Shadow" }
      ]
    },
    { 
      "familyName": "Miller", 
        "givenName": "Lisa", 
        "gender": "female", 
        "grade": 8 
    }
  ],
  "address": { "state": "NY", "county": "Manhattan", "city": "NY" },
  "creationDate": 1431620462,
  "isRegistered": false
}

选择子集合字段的叉积

下一查询返回家族中所有 ID 匹配 WakefieldFamily 的子女的名字。

Query:

SELECT c.givenName 
FROM Families f 
JOIN c IN f.children 
WHERE f.id = 'WakefieldFamily'

Results:

[
  {
    "givenName": "Jesse"
  },
  {
    "givenName": "Lisa"
  }
]

Next step