mongodb 中 project 时取数组的最后一个值

在 mongodb 中进行 project 时,可以通过如下方法来获取数组中的最后一个值。

正文

$arrayElemAt (aggregation)

语法

1
{ $arrayElemAt: [ <array>, <idx> ] }
  • idx 计数从 0 开始
  • 为正时,从前向后遍历
  • 为负时,从后向前遍历

示例:

1
{ $arrayElemAt: [ <array>, -1 ] }

v3.2 新增

$last

语法

1
{ $last: <expression> }

该语法是 { $arrayElemAt: [ <array expression>, -1 ] } 的语法糖

v4.4 新增

$slice

语法

1
{ $slice: [ <array>, <position>, <n> ] }

示例

1
{ $arrayElemAt: [ <array>, -1,1 ] }

参考

Aggregation Pipeline Operators — MongoDB Manual