首页 > 解决方案 > $group阶段多个字段的mongodb排序结果

问题描述

我需要执行以下 SQL 查询中提到的类似任务,但在 mongodb 中。下面是 SQL 查询:

last_value(status) over (partition by entity_entry_id order by entity_id, entity_ingest_date)

可以看出,我通过 check_in_able_id 对数据进行分区,并按两个字段对分区结果进行排序,然后选择每个分区中的最后一个值。

如何在 mongodb 中执行相同的任务?我写了以下查询:

 db.products.aggregate([
  {
    $group: {
      _id: {
        status_id: "$STATUS_ID"
      },
      last_entity_status: {
        $last: "$ENTITY_ID, $ENTITY_INGEST_DATE"
      }
    }
  }
])

但是上面的查询不起作用,因为 $last 只接受一个参数,

标签: mongodb

解决方案


推荐阅读