gpt4 book ai didi

json - 如何使用 Cosmos DB SQL 显示数组中的位置

转载 作者:行者123 更新时间:2023-12-03 04:11:12 25 4
gpt4 key购买 nike

我在尝试从 Cosmos-db 中的文档数组中进行选择时遇到问题。 (SQL-api)

我可以从数组中选择值,但是我希望也能够显示数组中每个值的位置。

示例 JSON 文档:

{
"Type": "SampleJSONMessage",
"Version": "1",
"Reference": "Test",
"DateTime": "2019-03-29T15:16:11.503Z",
"Configuration": {
"MessageType": "1",
"MessageConfig": "100",
"Source": [
{
"Source": "Stream1"
},
{
"Source": "Stream2"
},
{
"Source": "Stream3"
},
{
"Source": "Stream4"
}
]
}
}

我执行这个:

从c中选择c.Configuration.Source

返回这个:

[
{
"Source": "Stream1"
},
{
"Source": "Stream2"
},
{
"Source": "Stream3"
},
{
"Source": "Stream4"
}
]

这就是我想要显示的内容:

[
{
"Source": "Stream1" ,
"Position": "1"
},
{
"Source": "Stream2",
"Position": "2"
},
{
"Source": "Stream3",
"Position": "3"
},
{
"Source": "Stream4",
"Position": "4"
}
]

感谢任何帮助!

最佳答案

虽然specific index每个数组元素都存储在 CosmosDB 中,SQL API 目前没有直接访问它的方法。不过,用户定义的函数也可以工作。

这是我添加到我的集合中的 UDF:

function ADD_INDEX(array){
array.forEach(function(item, index){item.Position = index.toString()});
return array;
}

修改后的查询使用它来获取您想要的输出:

select udf.ADD_INDEX(c.Configuration.Source) AS Source from c

关于json - 如何使用 Cosmos DB SQL 显示数组中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56574062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com