有没有一种方法可以通过字典值来搜索cosmosdb项?

4zcjmb1e  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(337)

我有一个方法,给我一个字符串, name . 我有一个包含多个项目的宇宙数据库容器。这些项目的格式如下。

{
   .
   .
   .
   dictParam: {
      "123": "foo",
      "321": "bar"
   }
   .
   .
   .
}

有没有一种方法可以格式化查询以返回 name 作为 dictParam ? 所以如果 name 等于“foo”,查询将搜索容器中的所有项,检查每个项的值 dictParam ,并将具有给定名称的第一个项作为其字典的值之一返回。
谢谢!

fxnxkyjh

fxnxkyjh1#

你可以使用自定义项。
自定义项:

function iteration(data,str){
    for(var key in data){
        if(data[key] == str){
            return true;
        }
    }
    return false;
}

sql语句:

SELECT top 1 c.dictParam FROM c where udf.iteration(c.dictParam,'foo')

结果:

[
    {
        "dictParam": {
            "123": "foo",
            "321": "bar"
        }
    }
]

希望这能对你有所帮助。
顺便说一句,正如david的评论所说,数组条目将有助于搜索。您只需要像这样尝试sql:

SELECT top 1 c.dictParam   FROM c where ARRAY_CONTAINS(c.dictParam,{"itemValue":"foo"},true)

相关问题