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

MongoDB查询:匹配数组最后一个元素指定属性值且保留原结构

MongoDB 查询:匹配数组最后一个元素的指定属性且保留原文档结构

我明白你的需求啦——要找出my_list数组最后一个元素的b属性符合特定值的文档,同时还得保留原文档的完整结构,不想用$project来修改返回结果对吧?

其实不用在投影阶段做处理,直接在查询条件里用聚合表达式就能搞定,既过滤出符合条件的文档,又能完整返回原结构。这里给你一个具体的查询示例:

db.collection.find({
  $expr: {
    $eq: [
      { $arrayElemAt: ["$my_list.b", -1] },
      31 // 把这里替换成你需要匹配的特定值
    ]
  }
})

来拆解一下这个查询的逻辑:

  • $expr 关键字让我们可以在查询条件中使用聚合管道里的表达式,这是实现这个需求的关键
  • { $arrayElemAt: ["$my_list.b", -1] } 会先提取my_list数组中每个元素的b属性,生成一个新的数值数组,然后用-1作为索引取出这个数组的最后一个元素
  • $eq 用来对比这个最后一个b值和你指定的目标值,只有相等的文档才会被筛选出来

这样查询返回的就是完全保留原有结构的文档,完全符合你的要求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:14:08