首页 > 解决方案 > 在 Mongoose 中填充数组的最后一个元素

问题描述

我有一个包含数组字段 ( "array") 的集合,它存储引用另一个集合的 _ids。我正在使用猫鼬.populate,并且可以使用字符串点表示法填充特定的数组元素,例如

.populate({path: "array.4"})

但我现在想填充数组的最后一个元素。在一个理想的世界里,"array.-1"它会起作用,但它不会。我尝试过使用 populate 的match属性,例如:

.populate({
  path: "array",
  match: { 
    $arrayElemAt: { 
      $subtract: [
        { 
          $size: "array"
        },
        1
      ]
    }
  },
})

但这也不起作用(而且我认为它根本不应该被使用!)

有什么办法可以做到这一点?

标签: javascriptmongodbmongoose

解决方案


尝试这个。

User.find({},{"arrayObject": {$slice: -1})
  .populate('arrayObject')

推荐阅读