为什么此Azure CLI布尔属性查询似乎是向后的?

我正在编写一个简单的az命令以返回AKS的默认版本。我尝试了以下几种变体,但是返回的结果集与我追求的相反。关于JSON中的JMESPath过滤器表达式和布尔值,我缺少什么吗?

我想这两个命令应该只返回“默认”版本。而是返回默认值以外的所有值。

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"
  },"Version": "1.11.9"
  },"Version": "1.11.10"
  },"Version": "1.12.7"
  },"Version": "1.12.8"
  },"Version": "1.13.11"
  },{
    "IsDefault": true,"Version": "1.13.12"
  },"Version": "1.14.7"
  },"Version": "1.14.8"
  },"Version": "1.15.4"
  },"Version": "1.15.5"
  }
]
ping950726 回答:为什么此Azure CLI布尔属性查询似乎是向后的?

这是JEMSPATH中的一条规则,您可以看到描述here,它是document的Raw类型。它显示如下:

enter image description here

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
本文链接:https://www.f2er.com/3149581.html

大家都在问