问题
The following JmesPath expression finds instances that have been tagged with a team:
"Instances[?Tags[?Key=='team']]"
Do you know how to find instances that are not tagged with a team?
I have tried:
"Instances[?!Tags[?Key=='team']]"
-> !Tags[?Key=='team']]: event not found
"Instances[?null==Tags[?Key=='team']]"
-> [] <-- wrong answer
"Instances[?!not_null(Tags[?Key=='team'])]"
-> !not_null: event not found
Many thanks in advance!
Sample input:
{ "Instances":
[ { "id": "i-911"
, "Tags":
[ {"Key":"owner", "Value":"Edu"}
, {"Key":"team", "Value":"forensics"}
]
, "many other keys": "stuff"
}
, { "id": "i-999"
, "Tags":
[ {"Key":"owner", "Value":"Edu"}
, {"Key":"note", "Value":"No team!"}
]
, "many other keys": "stuff"
}
]
}
回答1:
Solved: Parentheses are the answer:
"Instances[?!(Tags[?Key=='team'])]"
来源:https://stackoverflow.com/questions/42396971/jmespath-find-where-not-exists