You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JSONata统计数组中多字段为true的元素数量

JSONata筛选数组元素并统计数量

给定如下JSON数组:

[
  {
    "_id": {
      "$oid": "yadayadayada"
    },
    "ownership_id": "yadayadayada",
    "execution_id": "yadayadayada",
    "execution_date": {
      "$date": "yadayadayada"
    },
    "event_type": "yadayadayada",
    "value_stream": "yadayadayada",
    "app_name": "yadayadayada",
    "repository": "yadayadayada",
    "project": "yadayadayada",
    "last_error_message": "yadayadayada",
    "s_ack_rate": true,
    "b_doc": true,
    "b_plan": true,
    "b_cover": true,
    "b_alerts": true,
    "b_dashboard": true,
    "b_track": true,
    "b_logging": true,
    "b_mark": true,
    "b_test": true,
    "b_check": true
  },
  {
    "_id": {
      "$oid": "yadayadayada"
    },
    "ownership_id": "yadayadayada",
    "execution_id": "yadayadayada",
    "execution_date": {
      "$date": "yadayadayada"
    },
    "event_type": "yadayadayada",
    "value_stream": "yadayadayada",
    "app_name": "yadayadayada",
    "repository": "yadayadayada",
    "project": "yadayadayada",
    "last_error_message": "yadayadayada",
    "s_ack_rate": false,
    "b_doc": true,
    "b_plan": true,
    "b_cover": true,
    "b_alerts": true,
    "b_dashboard": true,
    "b_track": true,
    "b_logging": true,
    "b_mark": true,
    "b_test": true,
    "b_check": true
  }
]

需求:筛选出数组中同时满足b_plan、b_cover、b_dashboard字段值为true的元素,并统计这类元素的数量。

错误写法分析

  • 第一种写法$count(($[b_plan = true] ; $[b_cover = true] ; $[b_dashboard = true])):分号;是将三个筛选结果合并为一个数组,会包含满足任一条件的元素,甚至重复统计,结果不符合预期。
  • 第二种写法$count(($[b_plan = true] and $[b_cover = true] and $[b_dashboard = true])):这里的and是对三个筛选结果做布尔判断,最终返回单个布尔值,$count对布尔值统计只会返回1,无法得到正确数量。

正确的JSONata表达式

$count($[b_plan = true and b_cover = true and b_dashboard = true])

说明

  • $[...]是JSONata的数组筛选语法,括号内的条件会作用于数组每个元素,只有同时满足所有条件的元素才会被保留到筛选后的数组中。
  • $count()函数统计筛选后数组的元素数量,直接得到符合条件的元素总数。

内容的提问来源于stack exchange,提问作者Reinaldo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 21:14:55