Insensible à la casse tri dans MongoDB
Comment puis-je trier une collection MongoDB par un champ donné, au cas insensiblement? Par défaut, je reçois Un-Z avant de a-z.
Je suis en utilisant Java.
Vous devez vous connecter pour publier un commentaire.
Mise à jour:
À compter de maintenant, mongodb ont pas sensible à la casse d'indices:
shell:
Mise à jour: Cette réponse est hors de date, 3.4 ont pas sensible à la casse index. Regarder le TABLEAU pour plus d'informations https://jira.mongodb.org/browse/SERVER-90
Malheureusement MongoDB ne pas encore avoir de la casse d'indices: https://jira.mongodb.org/browse/SERVER-90 et la tâche a été repoussé.
Cela signifie que le seul moyen de résoudre les casse actuellement est en fait de créer un "minuscule" sur le terrain, la copie de la valeur (minuscule évidemment), de la rubrique de tri en question et de tri sur place.
case insensitive index
avecreactive-mongo
pilote ? Je suis à l'aide descala
avecmongo
.De tri fonctionne comme ça dans MongoDB, mais vous pouvez le faire à la volée de l'agrégat:
Prendre les données suivantes:
Donc, avec la déclaration suivante:
Serait de produire des résultats comme:
De l'ordre réel de l'insertion serait maintenue pour toutes les valeurs résultant de la même clé lors de la conversion.
Cela a été un question pour un temps assez long sur MongoDB JIRA, mais c'est résolu maintenant. Jetez un oeil à cette notes de version pour obtenir une documentation détaillée. Vous devez utiliser
collation
.1
au lieu deasc
Dès maintenant (mongodb 4), vous pouvez effectuer les opérations suivantes:
mongo shell:
mangouste:
Voici langues prises en charge et les paramètres régionaux par mongodb.
Ici, il est en Java. J'ai mélangé aucun des arguments et de la première clé-val variantes de
BasicDBObject
juste pour la variétéL'ajout du code
.collation({'locale':'en'})
aidé à résoudre mon problème.- Nous résoudre ce problème avec l'aide de .fonction de tri dans le tableau JavaScript
Voici le code