Firestore クエリで大文字と小文字を区別しない並べ替えを実現するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-10-22 08:53:30
オリジナル
742 人が閲覧しました

How to Achieve Case-Insensitive Sorting with Firestore Queries?

Cloud Firestore のクエリによる大文字と小文字を区別しない並べ替え

Cloud Firestore は OrderBy メソッドを使用したデータの並べ替えをサポートしていますが、大文字と小文字の区別が必要な場合にはこれを行います。敏感な態度。大文字と小文字のみが異なる文字列を並べ替える場合、これにより予期しない結果が生じる可能性があります。

大文字と小文字を区別しない並べ替えを実現するには、回避策として、データを 2 回保存します。1 回は元の大文字と小文字で、もう 1 回は大文字と小文字を区別しない形式で保存します。これにより、元のデータを表示しながら、大文字と小文字を区別しないバージョンのデータに対してクエリを実行できるようになります。

その仕組みは次のとおりです。

  • ドキュメントに新しいフィールドを作成します。元のフィールドの大文字と小文字を区別しないバージョン。たとえば、元のフィールドが「myData」という名前の場合、「myData_insensitive」という新しいフィールドを作成します。
  • 次の JavaScript 関数を使用して、文字列を「myData_insensitive」に保存する前に大文字と小文字を正規化します。
<code class="javascript">caseFoldNormalize = function (s) {
  return s.normalize('NFKC').toLowerCase().toUpperCase().toLowerCase();
};</code>
ログイン後にコピー
  • これで、「myData_insensitive」フィールドで OrderBy を使用して Firestore コレクションをクエリし、大文字と小文字を区別しない並べ替えを実現できます。

次の手順に従ってください。手動で並べ替えることなく、大文字と小文字を区別しない方法でデータを並べ替えることができます。この回避策では重複データを保存する必要があるため、大規模なデータセットではパフォーマンスに影響を及ぼす可能性があることに注意してください。

以上がFirestore クエリで大文字と小文字を区別しない並べ替えを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート