如何使用 SQL for Cosmos DB 在查询时重塑此结构?
数据库中的结构:
{
"id": "id-1",
"Costs": {
"Items": {
"d1": {
"Title": "A1",
"Amount": 100
},
"d2": {
"Title": "A2",
"Amount": 200
},
"d3": {
"Title": "A3",
"Amount": 300
}
}
}
输出结构:
{
"id": "id-1",
"Costs": {
"d1": 100,
"d2": 200,
"d3": 300
}
}
Cosmos DB SQL 调整输出:
以下是我遵循的步骤:
"d1": c.Costs.Items.d1.Amount
从 Costs 对象内的 Items 对象内的 d1 子对象中提取 Amount 字段。该值被分配给新对象的 d1 键。
"d2": c.Costs.Items.d2.Amount
和 "d3": c.Costs.Items.d3.Amount
的工作方式与 d1 提取相同,但d2 和 d3 子对象除外。
AS Costs
这会将输出中新形成的对象重命名为 Costs。
输出对象将具有键Costs,包括“d1”、“d2”和“d3”条目。
下面是我尝试过的查询:
SELECT c.id,
{
"d1": c.Costs.Items.d1.Amount,
"d2": c.Costs.Items.d2.Amount,
"d3": c.Costs.Items.d3.Amount
} AS Costs FROM c
WHERE c.id = "id-1"
输出:
[
{
"id": "id-1",
"Costs": {
"d1": 100,
"d2": 200,
"d3": 300
}
}
]