为了账号安全,请及时绑定邮箱和手机立即绑定

OPA Rego 问题计数

OPA Rego 问题计数

Go
呼唤远方 2022-10-17 16:52:44
我正在尝试编写规则,但遇到了问题。我设法从中提取以下内容作为我的输入:myData:= [{"Key": "use", "Value": "1"}, {"Key": "use", "Value": "2"}, {"Key": "att1", "Value": "3"}]我正在尝试计算具有值 use 的键出现的次数。但是,当我这样做时:p := {keep| keep:= myData[_]; myData.Key == "use"}我认为这会创建一个列表,列出我想保留的所有内容,但操场错误:1 error occurred: policy.rego:24: rego_type_error: undefined ref: data.play.myData.Key     data.play.myData.Key我希望我可以列出它们,p然后count(p) > 1检查是否列出了更多。
查看完整描述

1 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

在您对 的集合理解中p,您正在遍历 中的对象myData,将每个元素分配给keep. 然后,您在myData.Key. 我想你要找的是

p := {keep| keep := myData[_]; keep.Key == "use"}

请注意,这是一个集合理解,因此p这两个输入是相同的:

myData:= [{"Key": "use", "Value": "1"}]
myData:= [{"Key": "use", "Value": "1"}, {"Key": "use", "Value": "1"}]

p := [ keep | keep := ... ]如果这不是您想要的,您可以使用数组理解 ( )。


查看完整回答
反对 回复 2022-10-17
  • 1 回答
  • 0 关注
  • 107 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信