azure - 如何在 MS Azure CosmosDB 中使用 SQL 查询嵌套列表和数组?

标签 azure azure-cosmosdb azure-cosmosdb-sqlapi

我有以下(Azure)CosmosDB(子)结构,它有 2 个嵌套数组:

{
    "id": "documentTypes",
    "SomeThing": "SomeThing",
    "configuration": [
        {
            "language": "en",
            "list": [
                {
                    "id": 1,
                    "name": "Supporting Documents"
                },
                {
                    "id": 2,
                    "name": "Summary PDF"
                },
            ]
        }
    ],
}

我尝试了以下查询,但结果不佳。

SELECT * FROM c WHERE c.documentTypes.configuration[0].list[0].id FROM c

SELECT
    p.id,       
    p.name
FROM f
    JOIN c IN f.configuration
    JOIN p IN c.list
WHERE c.id == 'documentTypes'
<小时/>

Q:如何才能只获取nameid的列表?

最佳答案

你需要这个吗?

SELECT ARRAY(SELECT VALUE e FROM c JOIN d IN c["configuration"] JOIN e IN d["list"]) AS Result FROM c

输出:

[ { "Result": [ { "id": 1, "name": "Supporting Documents" }, { "id": 2, "name": "Summary PDF" } ] } ]

关于azure - 如何在 MS Azure CosmosDB 中使用 SQL 查询嵌套列表和数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71691277/

相关文章:

asp.net-mvc - 使用不可更新 View 进行预编译导致未预编译异常

c# - 对使用 Azure 云服务的代码进行单元测试

azure - Cosmos 数据库吞吐量

python - 没有名为 azure.cosmos.cosmos_client 的模块

azure - TTL 删除项目后,COSMOS DB 唯一索引约束冲突

api - CosmosDB 中的 NULL 连续 token

c# - 值差异 - Azure 表存储时间戳和 Azure 表存储中的新 DateTime 属性

azure - 如何为 Azure SQL 数据库设置 UTF-8 排序规则? UTF-8 不在支持的排序规则列表中

mongodb - CosmosDB - 无效的 BSON 字段名称 'places.$id'

Docker 上的 Azure CosmosDB 模拟器不生成证书