一个示例是使用 jq 返回“field”属性中同时具有 1 和 3 的对象。
对象:
[
{
"field": [1, 2, 3]
},
{
"field": [1, 2]
},
{
"field": [3, 1, 4, 5]
}
]
返回:
{
"field": [1, 2, 3]
},
{
"field": [3, 1, 4, 5]
}
我发现了许多从数组中选择至少包含一个值的对象的示例(例如,返回“field”属性包含 1 或 2 的对象),但我没有找到任何匹配所有值的示例。乍一看,jq 中的一些函数,例如
contains
看起来可能在这里很有用,但实际上有不同的行为。
我最终使用
IN
sql like 运算符解决了这个问题。
.[] | select(.field as $field | [1, 3] | all(IN($field[])))
这是 jq 播放演示 - https://jqplay.org/s/MqCD2o_f-Y3
期待听到是否有其他方法可以进行此过滤