繁体   English   中英

OPA Rego 问题计数

[英]OPA Rego issues counting

我正在尝试编写规则,但遇到了问题。 我设法从中提取以下内容作为我的输入:

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来检查是否列出了更多。

在您对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:=... ] )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM