登录
首页 >  Golang >  Go问答

OPA Rego 问题统计

来源:stackoverflow

时间:2024-02-14 22:18:24 242浏览 收藏

小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《OPA Rego 问题统计》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

问题内容

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

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

以上就是《OPA Rego 问题统计》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>