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"
]
}
]
db.collection('userUpfile')
.aggregate()
.group({
_id: {
user: '$user'
},
status: $.push(
"$status"
)
})
.sort()
.limit(1000)
.end()
list.sort((a, b) => b.status.length - a.status.length)
list.sort((a, b) => {
return b.status.length - a.status.length
})