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

Hvordan opretholdes rækkefølgen af ​​ejendomme til sortering i mongodb?

Dette er et interessant spørgsmål.

Det fungerer som de fleste ECMAScript-implementeringer faktisk gør bevare nøglerækkefølgen (f.eks. V8, som bruges af Node). Den officielle Node MongoDB-driver tilskynder ikke til dets brug, i stedet tilbyder det to forskellige notationer:

Mongoose-dokumentationen nævner ikke noget om nøglerækkefølge (i hvert fald ikke, hvad jeg kender til). Men det tilbyder også to forskellige tilgange til sortering :

Det ser faktisk ud til, at Mongoose-sorteringsfunktionaliteten var baseret på en forkert (men i øjeblikket gyldig) antagelse. Det er nok bedst, hvis du bruger strengnotationen, når du sorterer med flere nøgler.Sortering med objektnotationen fungerer korrekt, når du bruger MongoDB direkte (f.eks. i MongoDB-skallen), da den ikke bruger ren JSON, men udvidet JSON .

Se også dette meget relaterede spørgsmål:Hvordan kan du angive rækkefølgen af ​​egenskaber i et javascript-objekt for et MongoDB-indeks i node.js?

Der er også et Mongoose-problem om dette:

Så når du bruger Mongoose, skal du enten bruge strengnotationen eller den nyligt tilføjede understøttelse af ES2015 Maps som med garanti bestilles ved indstiksordre.



  1. Express.js og connect-mongo session varighed

  2. Meteor.js mongodb version

  3. Hvordan søger jeg efter en streng i et MongoDB-dokumentarray og projicerer matrixværdien i en søgeoperation?

  4. Hvornår skal MongoDB-databaseforbindelsen lukkes i Nodejs