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 |