. sort()函数在mongoose中不排序数组中的数据



我在mongoose中有一个成绩数组,每个年级中的学生嵌套在该数组中。我一直试图对每个学生在一个数组内的圈数进行排序,但排序函数没有对它们进行排序;它使他们保持原来的队形。

[
name: 'Grade A',
user: 625b2ea7a921450275bd9500,
students: [
{
_id: 625d8f55a856e935cebe070a,
name: 'OB',
laps: 18,
time: 2022-05-15T15:28:39.734Z,
avgSpeed: 307.32371093750004,
topSpeed: 663.36
},
{
_id: 625d8f5ca856e935cebe070b,
name: 'CB',
laps: 7,
time: 2022-05-15T15:20:33.618Z,
topSpeed: 9562.13,
avgSpeed: 944.2103125
},
{
_id: 625d8f62a856e935cebe070c,
name: 'CC',
laps: 5,
time: 2022-05-14T19:59:31.637Z,
avgSpeed: 3.245,
topSpeed: 6.49
},
{
_id: 625d8f67a856e935cebe070d,
name: 'JC',
laps: 6,
time: 2022-05-14T19:57:05.646Z,
avgSpeed: 516.751875,
topSpeed: 7128.13
},
{
_id: 625d8f6aa856e935cebe070e,
name: 'EE',
laps: 5,
time: 2022-05-15T15:18:13.486Z,
avgSpeed: 2904.3375,
topSpeed: 10317.03
},
{
_id: 625d8f70a856e935cebe070f,
name: 'LF',
laps: 3,
time: 2022-05-14T19:09:00.683Z
},
{ _id: 625d8f78a856e935cebe0710, name: 'RH', laps: 2 },
{
_id: 625d8f7ea856e935cebe0711,
name: 'AH',
laps: 22,
time: 2022-05-14T19:06:35.126Z
},
{ _id: 625d901b6922d33754e48622, name: 'SM' },
{ _id: 625d90206922d33754e48623, name: 'CP' },
{ _id: 625d90256922d33754e48624, name: 'SS' },
{
_id: 625d902b6922d33754e48625,
name: 'NT',
laps: 3,
time: 2022-05-15T15:26:21.236Z,
avgSpeed: 582.14,
topSpeed: 605.01
},
{
_id: 625d902f6922d33754e48626,
name: 'IZ',
laps: 3,
time: 2022-05-15T15:22:45.552Z,
topSpeed: 9117.38,
avgSpeed: 2569.3199999999997
},
{
_id: 6261d505122d0a073be3fc73,
name: 'Mr. T',
laps: 59,
time: 2022-05-15T15:14:43.743Z,
topSpeed: 997.58,
avgSpeed: 102.66416015625
}
],
topSpeed: [],
topLaps: [],
createdAt: 2022-04-18T16:18:10.578Z,
__v: 0
},
{
_id: 625d88094d09ed2e5090f91b,
name: 'Grade B',
user: 625b2ea7a921450275bd9500,
students: [
{
_id: 625d8f55a856e935cebe070a,
name: 'j',
laps: 18,
time: 2022-05-15T15:28:39.734Z,
avgSpeed: 307.32371093750004,
topSpeed: 663.36
},
{
_id: 625d8f5ca856e935cebe070b,
name: 'i',
laps: 7,
time: 2022-05-15T15:20:33.618Z,
topSpeed: 9562.13,
avgSpeed: 944.2103125
},
{
_id: 625d8f62a856e935cebe070c,
name: 'h',
laps: 5,
time: 2022-05-14T19:59:31.637Z,
avgSpeed: 3.245,
topSpeed: 6.49
},
{
_id: 625d8f67a856e935cebe070d,
name: 'h',
laps: 6,
time: 2022-05-14T19:57:05.646Z,
avgSpeed: 516.751875,
topSpeed: 7128.13
},
{
_id: 625d8f6aa856e935cebe070e,
name: 'j',
laps: 5,
time: 2022-05-15T15:18:13.486Z,
avgSpeed: 2904.3375,
topSpeed: 10317.03
},
{
_id: 625d8f70a856e935cebe070f,
name: 'iF',
laps: 3,
time: 2022-05-14T19:09:00.683Z
},
{ _id: 625d8f78a856e935cebe0710, name: 'H', laps: 2 },
{
_id: 625d8f7ea856e935cebe0711,
name: 'g',
laps: 22,
time: 2022-05-14T19:06:35.126Z
},
{ _id: 625d901b6922d33754e48622, name: 'd' },
{ _id: 625d90206922d33754e48623, name: 'f' },
{ _id: 625d90256922d33754e48624, name: 'e' },
{
_id: 625d902b6922d33754e48625,
name: 'c',
laps: 3,
time: 2022-05-15T15:26:21.236Z,
avgSpeed: 582.14,
topSpeed: 605.01
},
{
_id: 625d902f6922d33754e48626,
name: 'b',
laps: 3,
time: 2022-05-15T15:22:45.552Z,
topSpeed: 9117.38,
avgSpeed: 2569.3199999999997
},
{
_id: 6261d505122d0a073be3fc73,
name: 'a',
laps: 59,
time: 2022-05-15T15:14:43.743Z,
topSpeed: 997.58,
avgSpeed: 102.66416015625
}
],
topSpeed: [],
topLaps: [],
createdAt: 2022-04-18T15:47:21.875Z,
__v: 0
}
]

我已经尝试过使用类似这样的东西来排序,但它不会以有序的顺序返回项目。

let sorted = await Sensor.findById(req.params.id).sort({ laps: -1 }).exec();
console.log("sorted", sorted);
} catch (err) {
console.log(err);
}

同样,我只尝试按圈数对某一年级的学生进行排序,而不是对所有班级的所有学生进行排序。

谢谢!

你试过了吗:

let sorted = await Sensor.findById(req.params.id).sort({
"students.laps": -1
}).exec();
console.log("sorted", sorted);
}
catch (err) {
console.log(err);
}

最新更新