按数组mongodb查询的长度排序

时间:2018-06-20 07:02:45

标签: node.js mongodb aggregation-framework

我有如下的MongoDB文档: 是否有查询以对subscribedGroups的长度对文档进行排序?可以上升或下降。

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

1 个答案:

答案 0 :(得分:2)

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

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

请参见sample