在Cosmos DB中迭代数组

时间:2018-01-03 15:22:45

标签: azure azure-cosmosdb

我有一个Cosmos DB,其中有一个名为Auditlog的文档。 简化结构如下:

[
    {
        "id": "1",
        "name": "A",
        "messages": [
            {
                "gps": {
                    "src": "GPS"
                },
                "ts": "0"
            }
        ]
    },
        {
        "id": "2",
        "name": "B",
        "messages": [
            {
                "gps": {
                    "src": "DR"
                },
                "ts": "1"
            }
        ]
    }
]   

我想过滤文档以获取所有具有src:GPS的条目。 结果还需要显示ID。 我不知道如何做到这一点。 我尝试使用'IN'运算符,但没有运气。 使用'IN'运算符使得无法显示ID。 我试过了:

SELECT * FROM c
IN Auditlog.messages
WHERE c.gps.src = "GPS"

结果是正确的但我需要在结果中显示ID。 以下只会产生一个空对象数组:

SELECT c.id FROM c
IN Auditlog.messages
WHERE c.gps.src = "GPS"

有人可以帮帮我吗? 提前谢谢。

此致

1 个答案:

答案 0 :(得分:1)

SELECT c.id as id FROM c join in a c.messages WHERE a.gps.src =" GPS"

结果将是

[     {         " id":" 1"     },     {         " id":" 2"     } ]