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

Come viene mantenuto l'ordine delle proprietà per l'ordinamento in mongodb?

Questa è una domanda interessante.

Funziona esattamente come la maggior parte delle implementazioni ECMAScript fa preservare l'ordine delle chiavi (ad es. V8 utilizzato da Node). Tuttavia, il driver Node MongoDB non ne incoraggia l'uso, anzi offre due notazioni differenti:

La documentazione di Mongoose non menziona nulla per quanto riguarda l'ordine delle chiavi (almeno non che io sappia). Ma offre anche due diversi approcci all'ordinamento :

In effetti, sembra che la funzionalità di ordinamento di Mongoose fosse basata su un'ipotesi errata (ma attualmente valida). Probabilmente è meglio se si utilizza la notazione della stringa durante l'ordinamento con più chiavi. L'ordinamento con la notazione dell'oggetto funziona correttamente quando si utilizza MongoDB direttamente (ad esempio nella shell MongoDB) poiché non utilizza JSON puro ma JSON esteso .

Vedi anche questa domanda molto correlata:Come puoi specificare l'ordine delle proprietà in un oggetto javascript per un indice MongoDB in node.js?

Esiste anche un Problema di mangusta su questo:

Pertanto, quando si utilizza Mongoose, utilizzare la notazione stringa o il supporto appena aggiunto per Mappe ES2015 che sono garantiti per essere ordinati tramite ordine di inserzione.