MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como a ordem das propriedades é mantida para classificação no mongodb?


Esta é uma pergunta interessante.

Funciona como a maioria das implementações ECMAScript realmente faz preservar a ordem das chaves (por exemplo, V8 que é usado pelo Node). No entanto, o driver Node MongoDB oficial não incentiva seu uso, mas oferece duas notações diferentes:

A documentação do Mongoose não menciona nada sobre a ordem das chaves (pelo menos não que eu saiba). Mas também oferece duas abordagens diferentes para classificação :

De fato, parece que a funcionalidade de classificação do Mongoose foi baseada em uma suposição errada (mas atualmente válida). Provavelmente é melhor se você usar a notação de string ao classificar com várias chaves. A classificação com a notação de objeto funciona corretamente ao usar o MongoDB diretamente (por exemplo, no shell do MongoDB), pois não usa JSON puro, mas JSON estendido .

Veja também esta pergunta muito relacionada:Como você pode especificar a ordem das propriedades em um objeto javascript para um índice MongoDB em node.js?

Há também um problema do Mongoose sobre isso:

Portanto, ao usar o Mongoose, use a notação de string ou o suporte recém-adicionado para Mapas ES2015 que são garantidos para serem encomendados por ordem de inserção.