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

JSONata技术需求:按grouping分组,取每组created降序首条数据

JSONata 分组排序并保留每组最新数据

原始数据

[
  {
    "id": "a1",
    "grouping": "A",
    "text": "Lorum ipsum",
    "created": "2023-01-01T13:42"
  },
  {
    "id": "a2",
    "grouping": "A",
    "text": "Epsom minor",
    "created": "2023-02-01T20:02"
  },
  {
    "id": "a3",
    "grouping": "B",
    "text": "Ipsum Lorum",
    "created": "2023-01-01T13:42"
  }
]

需求

按grouping字段分组,每组内按created字段降序排序,仅保留每组的第一条数据。

解决方案

使用以下JSONata表达式:

$map($group($, grouping), function($group) {
  $sort($group, function($a, $b) { $b.created > $a.created })[0]
})

表达式解释

  • $group($, grouping):将原始数组按grouping字段分组,生成以分组值为键、对应组数据为值的对象。
  • $map(..., function($group) { ... }):遍历每个分组,对每组数据进行处理。
  • $sort($group, function($a, $b) { $b.created > $a.created }):将当前分组内的元素按created字段降序排序(通过比较$b.created和$a.created实现倒序)。
  • [0]:取排序后数组的第一个元素,即每组中created最新的数据。

执行结果

[
  {
    "id": "a2",
    "grouping": "A",
    "text": "Epsom minor",
    "created": "2023-02-01T20:02"
  },
  {
    "id": "a3",
    "grouping": "B",
    "text": "Ipsum Lorum",
    "created": "2023-01-01T13:42"
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 06:24:58