你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用范围: NoSQL
NoSQL 的 Azure Cosmos DB 支持使用内置查询语法查询文档。 本文提供了一个示例文档和两个示例查询和结果。
本文涵盖以下任务:
- 使用内置查询语法查询 NoSQL 数据
Prerequisites
- Azure Cosmos DB 帐户、数据库和容器。 如果没有这些资源,请参阅 从 Azure 门户创建 Azure Cosmos DB 帐户、数据库、容器和项。
可以使用 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"
}
]