Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mencapai Pengisihan Tidak Peka Huruf dengan Pertanyaan Firestore?

Bagaimana untuk Mencapai Pengisihan Tidak Peka Huruf dengan Pertanyaan Firestore?

Patricia Arquette
Patricia Arquetteasal
2024-10-22 08:53:30673semak imbas

How to Achieve Case-Insensitive Sorting with Firestore Queries?

Cloud Firestore Case-Insensitive Sorting dengan Pertanyaan

Cloud Firestore menyokong pengisihan data menggunakan kaedah OrderBy, tetapi ia melakukannya dalam kes- cara sensitif. Ini boleh membawa kepada hasil yang tidak dijangka apabila mengisih rentetan yang hanya berbeza dalam huruf besar.

Untuk mencapai pengisihan tidak sensitif huruf besar-besaran, penyelesaian melibatkan penyimpanan data dua kali: sekali dalam kes asalnya dan sekali dalam format tidak sensitif huruf besar-besaran. Ini membenarkan pertanyaan dilakukan pada versi data yang tidak sensitif huruf besar dan kecil sambil memaparkan data asal.

Begini caranya:

  • Buat medan baharu dalam dokumen anda yang menyimpan versi medan asal yang tidak peka huruf besar-besaran. Contohnya, jika medan asal anda dipanggil "myData," cipta medan baharu yang dipanggil "myData_insensitive."
  • Gunakan fungsi JavaScript berikut untuk menormalkan kes rentetan sebelum menyimpannya dalam "myData_insensitive":
<code class="javascript">caseFoldNormalize = function (s) {
  return s.normalize('NFKC').toLowerCase().toUpperCase().toLowerCase();
};</code>
  • Kini, anda boleh menanyakan koleksi Firestore anda menggunakan OrderBy pada medan "myData_insensitive" untuk mencapai pengisihan tidak sensitif huruf besar dan kecil.

Dengan mengikuti langkah ini, anda boleh mengisih data anda dalam cara yang tidak peka huruf besar-besaran tanpa perlu menggunakan pengisihan manual. Harap maklum bahawa penyelesaian ini memerlukan penyimpanan data pendua, yang mungkin mempunyai implikasi prestasi untuk set data yang besar.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Pengisihan Tidak Peka Huruf dengan Pertanyaan Firestore?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn