如何编写 Cosmos DB 查询以获取没有子数组名称的子数组

How to write a Cosmos DB query to get child array without the child array name

是否可以编写一个查询来获取没有名称的子数组?

我知道有两种获取子数组的方法,但是这两种方法都是 return JSON 包含子数组名称的文件。有没有办法不获取子数组名称

预期输出:

    [
        {
            "name": "acvb",
            "addr": "bca",
            "age": 20
        },
        {
            "name": "zxc",
            "addr": "evd",
            "age": 22
        }

]
       

实际输出:

[
    {
        "event": [
            {
                "name": "acvb",
                "addr": "bca",
                "age": 20
            },
            {
                "name": "zxc",
                "addr": "evd",
                "age": 22
            } 
         ]  
      },
   {}
 ]

查询我正在使用

SELECT c.event FROM c

我还注意到我在对象数组之后返回了一个空对象 {}。我在 Cosmos DB 上 运行 它并得到了这个结果,似乎无论我如何给出查询我都会得到这个。有什么办法可以解决这个问题吗?

假设您的输入数据如下:

{
    "id": "something",
    "_partitionKey": "partition key value",
    "event": [
        {
            "name": "acvb",
            "addr": "bca",
            "age": 20
        },
        {
            "name": "zxc",
            "addr": "evd",
            "age": 22
        }
    ]
}

您可以使用以下查询:

SELECT *
FROM c IN t.event

它将产生以下输出:

[
    {
        "name": "acvb",
        "addr": "bca",
        "age": 20
    },
    {
        "name": "zxc",
        "addr": "evd",
        "age": 22
    }
]

更多详细信息,请参阅此博客post:https://devblogs.microsoft.com/cosmosdb/understanding-how-to-query-arrays-in-azure-cosmos-db/