使用 mongoose 和 MongoDB 根据数组中的项目数进行排序

Sort based on how many items are in an array using mongoose and MongoDB

我有一个 Post 模型,它有一个 likes 数组,其中包含喜欢 Post 的用户的 ObjectId,我想对 Posts 基于他们收到的点赞数。

我确定我会使用 $size$sortaggregate,但我尝试过的所有方法似乎都不起作用。你可以在 $sort 中使用 $size 吗?这样做的正确方法是什么?有猫鼬的具体方法吗?

db.collection.aggregate([
  {
    $set: {
      size: { $size: "$likes" }
    }
  },
  {
    $sort: {
      size: -1
    }
  }
])

mongoplayground