Se sort()
definition.
sort({_id: -1, upvotes_count: -1})
betyder sortera _id
först, sortera sedan upvotes_count
enligt beskrivande ordning endast för de samma _id
inlägg. Tyvärr, _id
är ObjectId
, som är 12-byte BSON-typ, konstruerad med:
- ett 4-byte värde som representerar sekunderna sedan Unix-epoken,
- en 3-byte maskinidentifierare,
- ett 2-byte process-id, och
- en 3-byte räknare, som börjar med ett slumpmässigt värde.
Det är svårt att få samma ObjectId
. Nämligen _id
av varje post ska vara unik i detta dokument. Som ett resultat sorteras resultatet av dina testkoder bara efter _id
beskrivning.
Här är ett exempel,
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 1 | 5 |
| 4 | 7 |
| 3 | 9 |
| 4 | 8 |
Resultatet av sort({_id: -1, upvotes_count: -1})
bör vara
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 4 | 8 |
| 4 | 7 |
| 3 | 9 |
| 1 | 5 |
upvote_count
skulle sorteras efter samma _id
.
Men i det här fallet. Det finns på samma _id
i det här fallet.
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 1 | 5 |
| 4 | 7 |
| 3 | 9 |
| 2 | 8 |
Resultatet av sort({_id: -1, upvotes_count: -1})
bör vara
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 1 | 5 |
| 2 | 8 |
| 3 | 9 |
| 4 | 7 |