Consulte sort()
definición.
sort({_id: -1, upvotes_count: -1})
significa ordenar el _id
primero, luego ordene upvotes_count
por orden de desc solo para los mismos _id
publicaciones Desafortunadamente, el _id
es ObjectId
, que es de tipo BSON de 12 bytes, construido usando:
- un valor de 4 bytes que representa los segundos desde la época de Unix,
- un identificador de máquina de 3 bytes,
- una identificación de proceso de 2 bytes, y
- un contador de 3 bytes, que comienza con un valor aleatorio.
Es difícil obtener el mismo ObjectId
. Es decir, el _id
de cada registro debe ser único en este documento. Como resultado, el resultado de sus códigos de prueba solo se ordena por _id
desc.
Aquí hay un ejemplo,
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 1 | 5 |
| 4 | 7 |
| 3 | 9 |
| 4 | 8 |
El resultado de sort({_id: -1, upvotes_count: -1})
debería ser
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 4 | 8 |
| 4 | 7 |
| 3 | 9 |
| 1 | 5 |
El upvote_count
se ordenaría para el mismo _id
.
Sin embargo, en este caso. Hay en el mismo _id
en este caso.
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 1 | 5 |
| 4 | 7 |
| 3 | 9 |
| 2 | 8 |
El resultado de sort({_id: -1, upvotes_count: -1})
debería ser
+---------+---------------+
| _id | upvote_count |
+---------+---------------+
| 1 | 5 |
| 2 | 8 |
| 3 | 9 |
| 4 | 7 |