教學課程:在 Azure Cosmos DB for NoSQL 中查詢資料

適用於:NoSQL

Azure Cosmos DB for NoSQL 支援使用內建查詢語法來查詢文件。 本文提供一個範例文件及兩個範例查詢和結果。

本文涵蓋下列工作:

  • 使用內建查詢語法查詢 NoSQL 資料

必要條件

本教學課程會假設您具備 Azure Cosmos DB 帳戶、資料庫及容器。

沒有這些資源嗎? 完成本快速入門:從 Azure 入口網站建立 Azure Cosmos DB 帳戶、資料庫、容器和項目

您可以在 Azure 入口網站中使用 Azure Cosmos DB 總管 來執行查詢。 您也可以使用 REST API各種 SDK 來執行查詢。

如需查詢的詳細資訊,請參閱使用查詢開始設定

範例文件

本文中的查詢使用下列範例文件。

{
  "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 文件:

查詢:

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

結果:

{
  "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
}

選取子集合欄位的外積

下一個查詢會傳回家族中識別碼符合 WakefieldFamily 的小孩名字。

查詢:

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

結果:

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

下一步

在本教學課程中,您已完成下列工作:

  • 瞭解如何使用內建查詢語法進行查詢

您現在可以繼續進行到下一個教學課程,以了解如何全域散發您的資料。