如何执行 CosmosDB JOIN 以获取列值数组
How to do CosmosDB JOIN to get an array of Column values
我在 cosmosDb 中有以下数据
[
{
accountId : "12453"
tag : "abc"
},
{
accountId : "12453"
tag : "bcd"
},
{
accountId : "34567"
tag : "qwe"
},
{
accountId : "34567"
tag : "xcx"
}
]
所需的输出是这样的
[
{
accountId : "123453"
tag : {
"abc",
"bcd"
},
{
accountId : "34567"
tag : {
"qwe",
"xcx"
}
]
我尝试了多种方式的 Join、array 和 group by,但都没有用。
下面的查询给出了类似的输出,但我正在寻找一组标签而不是计数
select c.accountId, count(c.tag) from c where c.accountId = "12453" group BY c.accountId
也试过下面的查询
select c.accountId, ARRAY(select c.tag from c IN f where f.accountId = "12453") as tags FROM f
这没有 return 任何标签值,我得到低于输出但我需要不同的 accountId 并且当我在 accountId 上尝试 DISTINCT 时,它给出了一个错误。
[
{
accountId : "12,
tag : []
}
........
]
有人可以帮助正确的查询语法
如M0 B所说,不支持。 Cosmos DB 无法跨文档合并数组。您需要在客户端处理此问题。
我在 cosmosDb 中有以下数据
[
{
accountId : "12453"
tag : "abc"
},
{
accountId : "12453"
tag : "bcd"
},
{
accountId : "34567"
tag : "qwe"
},
{
accountId : "34567"
tag : "xcx"
}
]
所需的输出是这样的
[
{
accountId : "123453"
tag : {
"abc",
"bcd"
},
{
accountId : "34567"
tag : {
"qwe",
"xcx"
}
]
我尝试了多种方式的 Join、array 和 group by,但都没有用。
下面的查询给出了类似的输出,但我正在寻找一组标签而不是计数
select c.accountId, count(c.tag) from c where c.accountId = "12453" group BY c.accountId
也试过下面的查询
select c.accountId, ARRAY(select c.tag from c IN f where f.accountId = "12453") as tags FROM f
这没有 return 任何标签值,我得到低于输出但我需要不同的 accountId 并且当我在 accountId 上尝试 DISTINCT 时,它给出了一个错误。
[
{
accountId : "12,
tag : []
}
........
]
有人可以帮助正确的查询语法
如M0 B所说,不支持。 Cosmos DB 无法跨文档合并数组。您需要在客户端处理此问题。