2017-09-29 5 views
1

Supposons qu'il existe une collection appelée "Test" avec une colonne "Nom" que je restaure les noms dans 3 langues différentes (ja, th, ru).Multi Collation dans MongoDB

Quelle est la meilleure façon de déclarer 3 classements sur Nom colonne dans MongoDB qui prend en charge les 3 langues? Est-il préférable de créer des collations sur la collection ou l'index? Comment l'implémenter?

Je sais qu'il est possible de déclarer simples comme locale mais ce n'est pas le meilleur choix en matière de comparaison. Si je ne veux pas utiliser simple comme locale comment puis-je déclarer multi Collation pour la collection/index/... pour supporter les 3 langues?

Répondre

-1

Je fais des recherches sur les classements en mongo en ce moment, donc je ne peux pas avoir toutes les informations, mais, fondamentalement, si vous voulez que vos requêtes sur les chaînes de travailler dans des langues différentes, vous pouvez passer la collation en tant que paramètre à une requête:

db.Docs.find({ Name: "My Name"}).collation({ locale: 'en', strength: 2 })

vous pouvez spécifier différents paramètres régionaux à chaque fois. Vous pouvez également créer un index avec des paramètres régionaux spécifiques, ce qui serait simplement nécessaire pour des raisons de performances. Mongo trouverait un index approprié correspondant aux paramètres régionaux de votre requête. Cependant, étant donné que vous pouvez avoir plusieurs langues dans votre base de données, vous devez créer un index individuel pour chaque langue/locale et la création de plusieurs index n'est généralement pas idéale. Jetez un oeil à la documentation mongo, ils ont des détails.