I MongoDB documentation stati:Come si può specificare l'ordine delle proprietà in un oggetto javascript per un indice MongoDB in node.js?
Per gli indici con più di una chiave (cioè indici composti) la sequenza di campi è importante.
Ma ECMAScript definisce un oggetto come segue:
Un oggetto è un membro del tipo oggetto. È una raccolta non ordinata di proprietà ognuna delle quali contiene un valore, un oggetto o una funzione primitivi.
Quando si utilizza MongoDB
a node.js
(ad esempio utilizzando this module), si sta utilizzando JavaScript lato server, come nell'esempio qui sotto.
Come si specifica una sequenza quando MongoDB prevede un object
(raccolta non ordinata di proprietà AKA)?
collection.ensureIndex({
date : -1,
client : 1,
product : 1
});
Non mi preoccuperei della proprietà "non ordinata" di JavaScript perché hanno implementato la propria versione di js per la shell. Prova 'mostra dbs' e vedrai cosa intendo. –
Spiacente, ho dimenticato di menzionare Node.js (javascript) come linguaggio di scripting. – Redsandro
Le proprietà potrebbero non essere in pratica necessariamente così non ordinate, in quanto le specifiche ECMA impongono che esse * potrebbero * essere (http://jsfiddle.net/D4zC8/2/). In Chrome e IE 10, l'ordine delle chiavi è coerente lì. Non mi sorprenderebbe troppo se un nuovo letterale di oggetti freschi si comportasse in quel modo in tutte le principali implementazioni. Sembra piuttosto folle a rilasciare il codice basandosi su quel comportamento, però. In Chrome, se elimino una proprietà e la sostituisco, l'ordine della chiave cambia. In IE10, non è così. –