数组中的 Cosmos DB 查询字符串保留分组和 trim 值?

Cosmos DB query strings in array retain grouping and trim the value?

假设我的集合中有两组数据:

{
  "id": "111",
  "linkedId": [
    "ABC:123",
    "ABC:456"
  ]
}
{
  "id": "222",
  "linkedId": [
    "DEF:321",
    "DEF:654"
  ]
}

什么查询可以运行得到这样的结果?

{
  [
    "123",
    "456"
  ]
},
{
  [
    "321",
    "654"
  ]
}

我试过了

SELECT c.linkedId FROM c

但是结果集中的 "linkedId" 作为 属性 名称。我尝试了 LEFT 但它没有 trim 字符串的前 4 个字符。

然后我试了

SELECT value cc FROM cc In c.linkedId

但是这样就失去了分组。

有什么想法吗?

由于元素只是字符串,而不是 json 对象,我建议您在 cosmos db 查询 sql.

中使用 UDF

UDF:

function userDefinedFunction(arr){
    var returnArr = [];
    for(var i=0;i<arr.length;i++){
        returnArr.push(arr[i].substring(4,7));
    }
    return returnArr;
}

SQL:

SELECT value udf.test(c.linkedId) FROM c

输出: