sql >> Database >  >> NoSQL >> MongoDB

Hoe wordt de volgorde van eigenschappen bijgehouden voor sortering in mongodb?

Dit is een interessante vraag.

Het werkt zoals de meeste ECMAScript-implementaties doen behoud de sleutelvolgorde (bijv. V8 die wordt gebruikt door Node). De officiële Node MongoDB-stuurprogramma moedigt het gebruik ervan niet aan, maar biedt twee verschillende notaties:

De Mongoose-documentatie vermeldt niets over de volgorde van de sleutels (althans niet dat ik weet). Maar het biedt ook twee verschillende benaderingen voor sorteren :

Het lijkt er inderdaad op dat de Mongoose-sorteerfunctionaliteit gebaseerd was op een verkeerde (maar momenteel geldige) veronderstelling. Het is waarschijnlijk het beste als u de tekenreeksnotatie gebruikt bij het sorteren met meerdere sleutels. Sorteren met de objectnotatie werkt correct wanneer MongoDB rechtstreeks wordt gebruikt (bijvoorbeeld in de MongoDB-shell) omdat het geen pure JSON gebruikt, maar uitgebreide JSON .

Zie ook deze zeer gerelateerde vraag:Hoe kun je de volgorde van eigenschappen in een javascript-object voor een MongoDB-index in node.js specificeren?

Er is ook een Mongoose-probleem hierover:

Dus als je Mongoose gebruikt, gebruik dan ofwel de tekenreeksnotatie of de nieuw toegevoegde ondersteuning voor ES2015-kaarten die gegarandeerd worden besteld via een invoegopdracht.



  1. Slechts één document vinden met Restivus en Curl

  2. mongodb kan geen transactie doen in Go en heeft altijd Kan geen naamruimte maken in transactie met meerdere documenten

  3. Hoe voer je db.killOp() uit met het MongoDB native Node.js-stuurprogramma?

  4. PyMongo-zelfstudie:MongoDB-failover testen in uw Python-app