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

MongoDB中如何将元素按降序推入数组?

解决方案

要让新推入的Channel ID排在数组最前面,需要修改$push的写法,使用MongoDB的$position修饰符指定插入位置:

修改后的代码

await User.findByIdAndUpdate(
  req.params.userId,
  {
    $push: {
      channel: {
        $each: [channel._id],
        $position: 0
      }
    }
  },
  {
    new: true,
  }
).populate('channel')

说明

  • 默认$push会把元素追加到数组末尾,通过$position: 0可以指定将元素插入到数组的最开头
  • $each是必须的,因为$position修饰符需要配合$each一起使用,用来包裹要插入的元素列表
  • 修改后,新添加的Channel ID会排在数组首位,后续查询时数组会保持"新元素在前"的顺序,populate后结果也会遵循这个顺序

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 11:01:35