sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur sorterar man två åkrar med mangust?

Se sort() definition.

sort({_id: -1, upvotes_count: -1})

betyder sortera _id först, sortera sedan upvotes_count enligt beskrivande ordning endast för de samma _id inlägg. Tyvärr, _id är ObjectId , som är 12-byte BSON-typ, konstruerad med:

  • ett 4-byte värde som representerar sekunderna sedan Unix-epoken,
  • en 3-byte maskinidentifierare,
  • ett 2-byte process-id, och
  • en 3-byte räknare, som börjar med ett slumpmässigt värde.

Det är svårt att få samma ObjectId . Nämligen _id av varje post ska vara unik i detta dokument. Som ett resultat sorteras resultatet av dina testkoder bara efter _id beskrivning.

Här är ett exempel,

+---------+---------------+
| _id     |  upvote_count |
+---------+---------------+
|  1      |      5        |
|  4      |      7        |
|  3      |      9        |
|  4      |      8        |

Resultatet av sort({_id: -1, upvotes_count: -1}) bör vara

+---------+---------------+
| _id     |  upvote_count |
+---------+---------------+
|  4      |      8        |
|  4      |      7        |
|  3      |      9        |
|  1      |      5        |

upvote_count skulle sorteras efter samma _id .

Men i det här fallet. Det finns på samma _id i det här fallet.

+---------+---------------+
| _id     |  upvote_count |
+---------+---------------+
|  1      |      5        |
|  4      |      7        |
|  3      |      9        |
|  2      |      8        |

Resultatet av sort({_id: -1, upvotes_count: -1}) bör vara

+---------+---------------+
| _id     |  upvote_count |
+---------+---------------+
|  1      |      5        |
|  2      |      8        |
|  3      |      9        |
|  4      |      7        |


  1. Mongoose-frågan returnerar null

  2. Vilken databas ska man välja (Cassandra, MongoDB, ?) för lagring och sökning av händelse-/logg-/måttdata?

  3. Hur man löser TypeError:unhashable typ 'list'

  4. Hur man säkerställer en unik e-post, användarnamn kommer in i MongoDB med Mongoose