如何在 CosmosDB 文档数组中只搜索 n 个级别?

How to search only n levels in a CosmosDB document array?

我正在构建 我之前提出的问题

示例文档同

[
    {
        "id": "1",
        "locales": [
            {
                "categories": [
                    "Women",
                    "clothing",
                    "tops"
                ]
            }
        ]
    },
    {
        "id": "2",
        "locales": [
            {
                "categories": [
                    "Men",
                    "test",
                    "tops"
                ]
            }
        ]
    }
]

我正在使用以下查询从所有文档中获取 UNIQUE 类别,这工作正常,但我需要进一步限制搜索,所以我只能获取类别数组中的前 2 个级别,但我无法弄清楚如何调整查询来做到这一点。

在示例文档中,我只想获取 Women、Clothing、Men、Test,因为它们都在数组的前 2 个级别中。

如何调整查询以实现此目的?

总之,单单sql是无法达到目的的。我仍然建议您结合使用 sql 和存储过程。

sql:

SELECT l.categories[0] as one, l.categories[1] as two FROM c
join l in c.locales

输出:

然后在存储过程中使用上面sql得到结果,循环过滤重复项。


更新答案:

Duplicate会比较所有的元素,不能直接用它来达到目的