我有一个给我一个字符串name
的方法。我有一个包含多个项目的CosmosDB容器。这些项目的格式如下。
{
.
.
.
dictParam: {
"123": "foo",
"321": "bar"
}
.
.
.
}
是否可以格式化查询以返回具有name
作为dictParam
中值之一的项目?因此,如果name
等于“ foo”,查询将搜索容器中的所有项目,检查每个项目的dictParam
的值,并返回具有给定名称的第一个项目作为其中一个字典的值。
谢谢!
答案 0 :(得分:0)
您可以使用udf。
UDF:
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)