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"}
我假设这会创建一个列表,列出我想保留的所有内容,但 playground 错误为:
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"}
请注意,这是一个 set 理解,因此 p
对于这两个输入是相同的:
myData:= [{"Key": "use", "Value": "1"}]
myData:= [{"Key": "use", "Value": "1"}, {"Key": "use", "Value": "1"}]
如果这不是您想要的,您可以使用数组理解 (p := [ keep | keep := ... ]
)。
我正在尝试编写规则,但 运行 遇到了问题。我设法从输入中提取以下内容:
myData:= [{"Key": "use", "Value": "1"}, {"Key": "use", "Value": "2"}, {"Key": "att1", "Value": "3"}]
我正在尝试计算具有 use 值的键出现的次数。但是当我这样做时:
p := {keep| keep:= myData[_]; myData.Key == "use"}
我假设这会创建一个列表,列出我想保留的所有内容,但 playground 错误为:
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"}
请注意,这是一个 set 理解,因此 p
对于这两个输入是相同的:
myData:= [{"Key": "use", "Value": "1"}]
myData:= [{"Key": "use", "Value": "1"}, {"Key": "use", "Value": "1"}]
如果这不是您想要的,您可以使用数组理解 (p := [ keep | keep := ... ]
)。