2

各言語が提示された言語で書かれている言語のリストを含むデータセットがあります

例えば

  • ドイツ語
  • ネダーランド
  • スロベンチナ
  • チェスキー
  • Български

問題は、言語をソートすると、上記のリストが表示されることです。当たり前だろうけど

  • Български
  • チェスキー
  • ドイツ語
  • ネダーランド
  • スロベンチナ

これをどのように行うことをお勧めしますか?

1 つはソート フィールドを作成することですが、15,000 のドキュメントを含む別のコレクションがあり、これにソート インデックスを作成するのは大変な作業です。

4

2 に答える 2

4

MongoDB にはロケール ベースの並べ替えがなく、代わりに Unicode コードポイントの順序付けのみを使用します。これは、標準的な英語のアルファベットでは問題なく機能しますが、他の言語では明らかに機能しません。この問題はここで追跡されており、回避策はここにあります

私の回答は、スウェーデンの手紙の分類に関してここに投稿された Google グループの質問から取られました。Unicode Collat​​ion の詳細については、Unicode Technical Standardを参照してください。

提案は、データを Unicode 照合を適切に処理する言語に取り込み、そこからソート フィールドを適用することです。または、通常、言語のリストにはロケール コード (たとえば、英語の場合は EN) も含まれており、これが並べ替えられます。

ロケールコードのリストを使用すると、例に従って注文が正しくなります。

  1. Български (ブルガリア語) - BG
  2. チェスキー (チェコ/チェスカだと思います) - CS
  3. ドイツ語 - DE
  4. オランダ - NL
  5. スロベンチナ - SK
于 2013-10-29T21:32:14.603 に答える