sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan sorterer man to marker med mangust?

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 |

  1. 3 måder at returnere distinkte værdier i MongoDB

  2. Hvordan sender man data til mongo-indsamling ved hjælp af Mean stack?

  3. hvordan man implementerer uendelig rullepaginering i vinkel 5?

  4. bedste praksis for datasynkronisering i nodejs