为什么这个 Azure CLI 布尔值 属性 查询似乎是倒退的?
Why does this Azure CLI boolean property query seem to be backwards?
我正在为 return AKS 的默认版本编写一个简单的 az 命令。我尝试了如下几种变体,但结果集 returned 与我所追求的相反。关于 JSON?
中的 JMESPath 过滤器表达式和布尔值,我是否遗漏了什么?
这两个命令,我本以为,应该return只有'default'版本。相反,它们 return 除了默认值。
az aks get-versions -l $region --query "orchestrators[?default==true].[orchestratorVersion,default]" -o table
和
az aks get-versions -l $region --query "orchestrators[?default==true].{Version:orchestratorVersion,IsDefault:default}" -o table
最后我用了 !=null 过滤器,但想知道答案。
没有过滤的数据
az aks get-versions -l $region --query "orchestrators[].{Version:orchestratorVersion,IsDefault:default}" -o json
如下:
[
{
"IsDefault": null,
"Version": "1.10.12"
},
{
"IsDefault": null,
"Version": "1.10.13"
},
{
"IsDefault": null,
"Version": "1.11.9"
},
{
"IsDefault": null,
"Version": "1.11.10"
},
{
"IsDefault": null,
"Version": "1.12.7"
},
{
"IsDefault": null,
"Version": "1.12.8"
},
{
"IsDefault": null,
"Version": "1.13.11"
},
{
"IsDefault": true,
"Version": "1.13.12"
},
{
"IsDefault": null,
"Version": "1.14.7"
},
{
"IsDefault": null,
"Version": "1.14.8"
},
{
"IsDefault": null,
"Version": "1.15.4"
},
{
"IsDefault": null,
"Version": "1.15.5"
}
]
这是JEMSPATH中的一条规则,可以看说明here, it's the Raw type this document。它显示如下:
PowerShell和Shell也有区别。
在 PowerShell 中,您可以像这样在命令中使用“``”:
az aks get-versions -l $region --query "orchestrators[?default == ``true``].[orchestratorVersion,default]" -o table
但在 Shell 中,您需要使用“`”并进行如下更改:
az aks get-versions -l $region --query 'orchestrators[?default == `true`].[orchestratorVersion,default]' -o table
我正在为 return AKS 的默认版本编写一个简单的 az 命令。我尝试了如下几种变体,但结果集 returned 与我所追求的相反。关于 JSON?
中的 JMESPath 过滤器表达式和布尔值,我是否遗漏了什么?这两个命令,我本以为,应该return只有'default'版本。相反,它们 return 除了默认值。
az aks get-versions -l $region --query "orchestrators[?default==true].[orchestratorVersion,default]" -o table
和
az aks get-versions -l $region --query "orchestrators[?default==true].{Version:orchestratorVersion,IsDefault:default}" -o table
最后我用了 !=null 过滤器,但想知道答案。
没有过滤的数据
az aks get-versions -l $region --query "orchestrators[].{Version:orchestratorVersion,IsDefault:default}" -o json
如下:
[
{
"IsDefault": null,
"Version": "1.10.12"
},
{
"IsDefault": null,
"Version": "1.10.13"
},
{
"IsDefault": null,
"Version": "1.11.9"
},
{
"IsDefault": null,
"Version": "1.11.10"
},
{
"IsDefault": null,
"Version": "1.12.7"
},
{
"IsDefault": null,
"Version": "1.12.8"
},
{
"IsDefault": null,
"Version": "1.13.11"
},
{
"IsDefault": true,
"Version": "1.13.12"
},
{
"IsDefault": null,
"Version": "1.14.7"
},
{
"IsDefault": null,
"Version": "1.14.8"
},
{
"IsDefault": null,
"Version": "1.15.4"
},
{
"IsDefault": null,
"Version": "1.15.5"
}
]
这是JEMSPATH中的一条规则,可以看说明here, it's the Raw type this document。它显示如下:
PowerShell和Shell也有区别。
在 PowerShell 中,您可以像这样在命令中使用“``”:
az aks get-versions -l $region --query "orchestrators[?default == ``true``].[orchestratorVersion,default]" -o table
但在 Shell 中,您需要使用“`”并进行如下更改:
az aks get-versions -l $region --query 'orchestrators[?default == `true`].[orchestratorVersion,default]' -o table