如何在 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会比较所有的元素,不能直接用它来达到目的
我正在构建
示例文档同
[
{
"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会比较所有的元素,不能直接用它来达到目的