使用 AWS CLI --query 选项过滤一维数组

Jam*_*mey 5 aws-cli

是否可以使用 AWS CLI 的 --query 选项(在此处描述)来过滤一维数组?我可以在 AWS 站点上找到的所有示例都适用于地图——但我无法弄清楚简单数组的语法。

考虑 dynamodb list-tables 命令,它的输出中有一个字符串数组:

aws dynamodb list-tables
Run Code Online (Sandbox Code Playgroud)

示例输出:

{
    "TableNames": [
        "Questions", 
        "Answers",
        "Votes"
    ]
}
Run Code Online (Sandbox Code Playgroud)

假设我想弄清楚 TableNames 是否包含“Answers”。我尝试过的语法无效或不起作用。

aws dynamodb list-tables --query 'TableNames[?==`Answers`]'
aws dynamodb list-tables --query 'TableNames[?.==`Answers`]'
aws dynamodb list-tables --query '[?TableNames[*]==`Answers`]'
Run Code Online (Sandbox Code Playgroud)

jam*_*sls 6

要引用数组中的当前元素,可以使用以下@字符:

$ aws dynamodb list-tables  --query "TableNames[? @ == 'Answers' ]"
[
    "Answers"
]
Run Code Online (Sandbox Code Playgroud)

如果您只需要“表列表中是否存在此表名称”的真/假答案,您还可以使用:

$ aws dynamodb list-tables  --query "contains(TableNames, 'Answers')"
true
Run Code Online (Sandbox Code Playgroud)