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

如何在Mongoose中获取edge.name与edge.image数组的最后一个元素?

解决方法

你可以通过两种方式实现只获取edge.name和edge.image的最后一个元素:

方法1:使用$slice投影(返回单元素数组)

MongoDB的$slice操作符可以从数组中截取指定数量的元素,传入-1就能取到最后一个元素。直接修改查询的投影参数即可:

MySchema.find(
  { user: req.user._id },
  {
    _id: 0,
    "edge.name": { $slice: -1 },
    "edge.image": { $slice: -1 }
  }
)

这种方式返回的edge.name和edge.image会是只包含最后一个元素的数组(比如["最后一个名称"])。

方法2:使用聚合管道(返回单个元素值)

如果希望直接返回字符串而非数组,可以用聚合管道的$arrayElemAt操作符,通过索引-1定位最后一个元素:

MySchema.aggregate([
  // 匹配目标用户的数据
  { $match: { user: req.user._id } },
  // 投影只保留需要的字段,提取数组最后一个元素
  {
    $project: {
      _id: 0,
      "edge.name": { $arrayElemAt: ["$edge.name", -1] },
      "edge.image": { $arrayElemAt: ["$edge.image", -1] }
    }
  }
])

这种方式返回的edge.name和edge.image就是单个字符串值(比如"最后一个名称")。

内容的提问来源于stack exchange,提问作者Ömer Faruk Demirel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 04:35:32