教學課程:在 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"
}
]
下一步
在本教學課程中,您已完成下列工作:
- 瞭解如何使用內建查詢語法進行查詢
您現在可以繼續進行到下一個教學課程,以了解如何全域散發您的資料。