Вижте sort()
определение.
sort({_id: -1, upvotes_count: -1})
означава сортиране на _id първо, след това сортирайте upvotes_count по поръчка само за същите _id публикации. За съжаление, _id е ObjectId
, който е 12-байтов тип BSON, конструиран с помощта на:
- 4-байтова стойност, представляваща секундите от епохата на Unix,
- 3-байтов идентификатор на машината,
- 2-байтов идентификатор на процеса и
- 3-байтов брояч, започващ с произволна стойност.
Трудно е да се получи същия ObjectId . А именно _id на всеки запис трябва да бъде уникален в този документ. В резултат на това резултатът от вашите тестови кодове просто се подрежда по _id описание
Ето един пример,
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 1 | 5 |
| 4 | 7 |
| 3 | 9 |
| 4 | 8 |
Резултатът от sort({_id: -1, upvotes_count: -1}) трябва да бъде
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 4 | 8 |
| 4 | 7 |
| 3 | 9 |
| 1 | 5 |
upvote_count ще бъдат сортирани за същия _id .
Въпреки това, в този случай. Има на същия _id в този случай.
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 1 | 5 |
| 4 | 7 |
| 3 | 9 |
| 2 | 8 |
Резултатът от sort({_id: -1, upvotes_count: -1}) трябва да бъде
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 1 | 5 |
| 2 | 8 |
| 3 | 9 |
| 4 | 7 |