如何从 CosmosDB 文档中的特定位置检索数组元素?
How to retrieve array element from a specific position in CosmosDB document?
假设我有一个具有以下结构的文档,
{
"VehicleDetailId": 1,
"VehicleDetail": [
{
"Id": 1,
"Make": "BMW"
},
{
"Id": 1,
"Model": "ABDS"
},
{
"Id": 1,
"Trim": "5.6L/ASMD"
},
{
"Id": 1,
"Year": 2008
}
]
}
现在我想从 VehicleDetail 数组中检索位于 特定位置 的数组元素,就像我想检索第二个元素一样,即
{
"Id": 1,
"Model": "ABDS"
}
或者第三个,
{
"Id": 1,
"Trim": "5.6L/ASMD"
}
我应该如何编写查询来实现这一点?
使用内置的ARRAY_SLICE函数。这允许您 select 数组的一部分。
将数组、起始位置、元素个数传给select。
SELECT ARRAY_SLICE(c.VehicleDetail, 1, 1) As SecondElement
FROM c
输出:
{
"SecondElement": [
{
"Id": 1,
"Model": "ABDS"
}
]
}
假设我有一个具有以下结构的文档,
{
"VehicleDetailId": 1,
"VehicleDetail": [
{
"Id": 1,
"Make": "BMW"
},
{
"Id": 1,
"Model": "ABDS"
},
{
"Id": 1,
"Trim": "5.6L/ASMD"
},
{
"Id": 1,
"Year": 2008
}
]
}
现在我想从 VehicleDetail 数组中检索位于 特定位置 的数组元素,就像我想检索第二个元素一样,即
{
"Id": 1,
"Model": "ABDS"
}
或者第三个,
{
"Id": 1,
"Trim": "5.6L/ASMD"
}
我应该如何编写查询来实现这一点?
使用内置的ARRAY_SLICE函数。这允许您 select 数组的一部分。
将数组、起始位置、元素个数传给select。
SELECT ARRAY_SLICE(c.VehicleDetail, 1, 1) As SecondElement
FROM c
输出:
{
"SecondElement": [
{
"Id": 1,
"Model": "ABDS"
}
]
}