我有如下MongoDB文档:
是否有查询按订阅组的长度对文档进行排序?可以上升也可以下降。

{
    "_id" : ObjectId("58c29d9ec79d585c0e16b110"),
    "subscribedGroups" : [
      ObjectId("5b28a9190c8c0d0014b03a0c"),
      ObjectId("5b2930650b813a0014a3294d"),
      ObjectId("5b29f1b5243d470014d6d351")
    ]
}

最佳答案

您可以使用subscribedGroups找到$size的大小,然后使用数组的长度轻松地找到$sort

db.collection.aggregate([
  {
    $addFields: {
      subscribedGroupsLength: {
        $size: "$subscribedGroups"
      }
    }
  },
  {
    $sort: {
      subscribedGroupsLength: -1
    }
  }
])

查看sample

09-25 17:16