收藏
回答

请教,怎么将下列数据根据字段里元素的个数进行排序?

// 怎么将下列数据根据status字段里元素的个数进行排序
list = [
  {
    "_id": {
      "user":"A"
    },
    "status": [
      "success",
      "checking",
      "success",
      "checking",
      "success",
      "checking",
      "checking",
      "checking",
      "checking",
      "checking"
    ]
  },
  {
    "_id": {
      "user": "B"
    },
    "status": [
      "success",
      "success",
      "success",
      "success",
      "fail",
      "success",
      "fail",
      "fail",
      "fail",
      "fail",
      "checking",
      "checking",
      "checking",
      "checking",
      "checking",
      "checking",
      "checking",
      "checking"
    ]
  },
  {
    "_id": {
      "user": "C"
    },
    "status": [
      "fail"
    ]
  },
  {
    "_id": {
      "user": "D"
    },
    "status": [
      "fail",
      "fail"
    ]
  }
]

// 处理后的数据
list = [
  {
    "_id": {
      "user": "B"
    },
    "status": [
      "success",
      "success",
      "success",
      "success",
      "fail",
      "success",
      "fail",
      "fail",
      "fail",
      "fail",
      "checking",
      "checking",
      "checking",
      "checking",
      "checking",
      "checking",
      "checking",
      "checking"
    ]
  },
  {
    "_id": {
      "user":"A"
    },
    "status": [
      "success",
      "checking",
      "success",
      "checking",
      "success",
      "checking",
      "checking",
      "checking",
      "checking",
      "checking"
    ]
  },
  {
    "_id": {
      "user": "D"
    },
    "status": [
      "fail",
      "fail"
    ]
  },
  {
    "_id": {
      "user": "C"
    },
    "status": [
      "fail"
    ]
  }
]
// list是聚合函数获取的数据
db.collection('userUpfile')
.aggregate()
.group({

_id: {
user: '$user'
},

status: $.push(
"$status"
)
})
.sort()
.limit(1000)
.end()


最后一次编辑于  2022-08-23
回答关注问题邀请回答
收藏

2 个回答

  • 尐飞魚คิดถึง
    尐飞魚คิดถึง
    2022-08-23

    list.sort((a, b) => b.status.length - a.status.length)

    2022-08-23
    有用 2
    回复
  • 小布师叔
    小布师叔
    2022-08-23

        list.sort((a, b) => {

                return b.status.length - a.status.length

            })


    2022-08-23
    有用 1
    回复
登录 后发表内容