Se sort()
definition.
sort({_id: -1, upvotes_count: -1})
betyder at sortere _id først, sorter derefter upvotes_count efter beskrevne rækkefølge kun for de samme _id indlæg. Desværre er _id er ObjectId
, som er 12-byte BSON-type, konstrueret ved hjælp af:
- en 4-byte værdi, der repræsenterer sekunderne siden Unix-epoken,
- en 3-byte maskin-id,
- et 2-byte proces-id, og
- en 3-byte tæller, der starter med en tilfældig værdi.
Det er svært at få det samme ObjectId . Nemlig _id af hver post skal være unik i dette dokument. Som følge heraf er resultatet af dine testkoder bare sorteret efter _id beskrivelse
Her er et eksempel,
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 1 | 5 |
| 4 | 7 |
| 3 | 9 |
| 4 | 8 |
Resultatet af sort({_id: -1, upvotes_count: -1}) skal være
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 4 | 8 |
| 4 | 7 |
| 3 | 9 |
| 1 | 5 |
upvote_count ville blive sorteret efter samme _id .
Dog i dette tilfælde. Der er på samme _id i dette tilfælde.
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 1 | 5 |
| 4 | 7 |
| 3 | 9 |
| 2 | 8 |
Resultatet af sort({_id: -1, upvotes_count: -1}) skal være
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 1 | 5 |
| 2 | 8 |
| 3 | 9 |
| 4 | 7 |