我有。
标记为“必须匹配”标签的任务的
// rego-input:
{"
user":"user-1",
"tags":{"loc":"NY","type":"L1","group":"admin"}
}
// rego-data:
{
"proj":"abc1",
"tasks":[
{"tags":{"loc":"NJ","type":"L1"},"title":"task-1"},
{"tags":{"loc":"NY","type":"L1"},"title":"task-2"},
{"tags":{"loc":"PA","type":"L2"},"title":"task-3"}]
}
// expected rego-output:
{
"user":"user-1",
"tasks":[
{"tags":{"loc":"NY","type":"L1"},"title":"task-2"}
]
}什么是正确的雷戈得到以上的输出?,感谢输入。
发布于 2022-09-19 17:24:23
下面是一种简单的方法。
package match.tags
import future.keywords.in
user := input.user
tasks[t] {
some user_tags in input
some data_tags in data.tasks[a]
user_tags.loc == data_tags.loc
user_tags.type == data_tags.type
t := data.tasks[a]
}发布于 2022-09-20 01:51:13
我有很近的东西..。https://play.openpolicyagent.org/p/wRYVBGTezT
usr = input.user
jobs2[v] {
some task in data.tasks
some tk, tv in task.tags
tv == input.tags[tk]
v := task.title
}但是,它不是执行所有匹配(标记),而是通过匹配类型"L1“返回任务1,2。想知道怎样才能把比赛进行到底.
https://stackoverflow.com/questions/73748701
复制相似问题