Reportez-vous à sort()
définition.
sort({_id: -1, upvotes_count: -1})
signifie trier le _id
d'abord, puis triez upvotes_count
par ordre desc uniquement pour ceux même _id
des postes. Malheureusement, le _id
est ObjectId
, qui est de type BSON de 12 octets, construit à l'aide :
- une valeur de 4 octets représentant les secondes depuis l'époque Unix,
- un identifiant de machine de 3 octets,
- un identifiant de processus de 2 octets, et
- un compteur de 3 octets, commençant par une valeur aléatoire.
Il est difficile d'obtenir le même ObjectId
. A savoir, le _id
de chaque enregistrement doit être unique dans ce document. Par conséquent, le résultat de vos codes de test est simplement classé par _id
description
Voici un exemple,
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 1 | 5 |
| 4 | 7 |
| 3 | 9 |
| 4 | 8 |
Le résultat de sort({_id: -1, upvotes_count: -1})
devrait être
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 4 | 8 |
| 4 | 7 |
| 3 | 9 |
| 1 | 5 |
Le upvote_count
serait trié pour le même _id
.
Cependant, dans ce cas. Il y a sur le même _id
dans ce cas.
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 1 | 5 |
| 4 | 7 |
| 3 | 9 |
| 2 | 8 |
Le résultat de sort({_id: -1, upvotes_count: -1})
devrait être
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 1 | 5 |
| 2 | 8 |
| 3 | 9 |
| 4 | 7 |