1. ホーム
  2. java

MongoDB で大文字小文字を区別しないソートをする

2023-10-12 17:36:22

質問

MongoDB のコレクションを指定したフィールドで大文字小文字を区別せずにソートするにはどうしたらよいでしょうか? デフォルトでは、私はa-zの前にA-Zを取得します。

どのように解決するのですか?

更新しました。 現在、mongodbは大文字小文字を区別しないインデックスを持ちます。

Users.find({})
  .collation({locale: "en" })
  .sort({name: 1})
  .exec()
  .then(...)

シェル

db.getCollection('users')
  .find({})
  .collation({'locale':'en'})
  .sort({'firstName':1})


更新しました。 この回答は古く、3.4では大文字と小文字を区別しないインデックスを持つことになります。詳細については JIRA を参照してください。 https://jira.mongodb.org/browse/SERVER-90


残念ながら、MongoDBにはまだ大文字小文字を区別しないインデックスがありません。 https://jira.mongodb.org/browse/SERVER-90 であり、タスクはプッシュバックされました。

これは、現在、大文字小文字を区別せずにソートする唯一の方法は、実際に特定の "小文字" フィールドを作成し、問題のソートフィールドの値 (もちろん小文字) をコピーして、代わりにそれをソートすることです。