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

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

How to Implement Case-Insensitive Sorting in Cloud Firestore?

Cloud Firestore: クエリを使用して大文字と小文字を区別しない並べ替えを実現する

Cloud Firestore では、OrderBy() 関数を使用したデータの並べ替えでは大文字と小文字が区別されます、提供された例で示されているように、大文字と小文字に基づいて文字列の順序が決まります。ただし、大文字と小文字を区別しない並べ替えが優先されるシナリオもあります。

大文字と小文字を区別しない並べ替えの制限事項

Firestore は、大文字と小文字を区別しない並べ替えに対する直接的なソリューションを提供しません。クエリを使用して。これは、並べ替えとフィルター操作がデータベースによって内部的に実行され、保存されている実際のデータに対して操作されるためです。

回避策: 重複フィールドの保存

推奨されるアプローチ大文字と小文字を区別しない並べ替えを実現するには、データを 2 回保存します:

  • 元のケース: データを元のケースで保存し、データの整合性と精度を確保します。
  • 大文字と小文字を区別しない: 同じデータを小文字などの大文字と小文字を区別しない形式に変換した追加フィールドを保存します。

たとえば、次のような "myData" という名前のフィールドを考えてみましょう。値は「AAA」と「aaa」です。大文字と小文字を区別しない並べ替えを実現するには、追加フィールド「myData_insensitive」を作成し、両方の値を「AAA」として保存します。

データのクエリと表示

クエリと並べ替えるには、「myData_insensitive」フィールドを指定します。これにより、大文字と小文字を区別しないバージョンのデータに基づいて順序が決定されます。ただし、結果を表示するときは、データの正確性を維持するために元の「myData」フィールドを参照してください。

Unicode に関する考慮事項

大文字と小文字を区別しない並べ替えを実装する場合は、大文字と小文字の正規化が不可欠です。 Unicode 文字を正しく処理するため。これには、文字を正規化された形式に変換し、アクセントや特殊文字を含む文字列のソートの一貫性を確保することが含まれます。正規化には、大文字と小文字の折りたたみなど、さまざまなアプローチを使用できます。

実装例

次の JavaScript コードは、重複フィールドを使用して大文字と小文字を区別しない並べ替えを実現する方法を示しています。

<code class="javascript">firestore.collection("cities").where("myData_insensitive", ">=", "AAA").where("myData_insensitive", "<=", "aaa").orderBy("myData_insensitive")</code>
ログイン後にコピー

このクエリは、大文字と小文字を区別しない順序で「AAA」と「aaa」を返します。

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

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!