首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Azure Cosmos DocumentDB -从子数组中的1个属性返回数组

Azure Cosmos DocumentDB -从子数组中的1个属性返回数组
EN

Stack Overflow用户
提问于 2017-09-11 19:04:39
回答 1查看 568关注 0票数 0

我已经到处寻找,看看是否有人需要这个,但找不到太多。

我在Azure DocumentDB集合中有以下json对象:

代码语言:javascript
复制
{
    personID: 1,
    name: "Bruce",
    surname: "Dickinson",
    items: [
        {
            itemID: 1,
            itemType: "A",
            name: 'Item 1'
        },
        {
            itemID: 2,
            itemType: "A",
            name: 'Item 2'
        },
        {
            itemID: 3,
            itemType: "B",
            name: 'Item 3'
        }
    ]

}

这个集合中有很多人。personID 2、3、4 ......100....1000等等。

我想编写一个SQL查询来提取personID =1和itemType = 'A‘项的itemID数组。我希望结果看起来像这样:

代码语言:javascript
复制
itemIDs: [
    1,
    2
]

或者简单地说:

代码语言:javascript
复制
[
    1,
    2
]

以前有没有人尝试过这样做?这有可能吗?

EN

回答 1

Stack Overflow用户

发布于 2017-09-11 19:24:27

比我熟悉SQL foo的人可能知道只用SQL就能做到这一点,但我会使用用户定义函数(UDF)来做到这一点。

下面是SQL语句:

代码语言:javascript
复制
SELECT VALUE udf.getItemIDArray(c) FROM collection c WHERE <your clause>

下面是UDF可能的样子:

代码语言:javascript
复制
function getItemIDArray (o) {
  output = [];
  for (item in o.items) {
    output.push(item.itemID)
  }
  return output 
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46154197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档