Zobacz sort()
definicja.
sort({_id: -1, upvotes_count: -1})
oznacza sortowanie _id
najpierw posortuj upvotes_count
według kolejności opisów tylko dla tych takich samych _id
posty. Niestety, _id
to ObjectId
, który jest 12-bajtowym typem BSON, skonstruowanym przy użyciu:
- 4-bajtowa wartość reprezentująca sekundy od epoki Uniksa,
- 3-bajtowy identyfikator maszyny,
- dwubajtowy identyfikator procesu i
- licznik 3-bajtowy, zaczynający się od losowej wartości.
Trudno uzyskać ten sam ObjectId
. Mianowicie _id
każdego rekordu powinny być unikatowe w tym dokumencie. W rezultacie wyniki twoich kodów testowych są po prostu uporządkowane według _id
opis.
Oto jeden przykład:
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 1 | 5 |
| 4 | 7 |
| 3 | 9 |
| 4 | 8 |
Wynik sort({_id: -1, upvotes_count: -1})
powinno być
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 4 | 8 |
| 4 | 7 |
| 3 | 9 |
| 1 | 5 |
upvote_count
zostaną posortowane według tego samego _id
.
Jednak w tym przypadku. Jest na tym samym _id
w tym przypadku.
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 1 | 5 |
| 4 | 7 |
| 3 | 9 |
| 2 | 8 |
Wynik sort({_id: -1, upvotes_count: -1})
powinno być
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 1 | 5 |
| 2 | 8 |
| 3 | 9 |
| 4 | 7 |