如何在Spring中使用聚合函数从MongoDB中找到数组列表最后一个元素?

kmb7vmvb  于 2022-10-31  发布在  Spring
关注(0)|答案(3)|浏览(123)

db.getCollection('notification').find({},{statusList:{$slice:-1}})此查询正在获取预期的输出,但在java中,我无法找到此问题的解决方案。有人能提供此问题的解决方案吗?我只想使用聚合函数

wj8zmpe1

wj8zmpe11#

请尝试使用$last聚合运算符。

db.getCollection('notification').aggregate([
   {
     $project:
      {
         _id: 0,
         last: { $last:"$statusList"}
      }
   }
])
jobtbby3

jobtbby32#

尝试使用这个,它给出了与$last相同的输出:

db.getCollection('notification').aggregate([
   {
     $project:
      {
         last: { $arrayElemAt: [ "$project", -1 ] }
      }
   }
])
4dbbbstv

4dbbbstv3#

聚合运算符$last可用于访问数组的最后一个元素:

db.collection.aggregate([
  { $addFields: { last: { $last: "$yourArray" } } },
  { $match: { last: "C" } }
])

db.getCollection('notification').aggregate([
   {
     $project:
      {
         last: { statusList: [ "$slice", -1 ] }
      }
   }
])

你也可以参考:MongoDB - Query on the last element of an array?

相关问题