Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Melaksanakan Pengisihan Case-Insensitive dalam Cloud Firestore?

Bagaimana untuk Melaksanakan Pengisihan Case-Insensitive dalam Cloud Firestore?

Patricia Arquette
Patricia Arquetteasal
2024-10-22 08:52:30258semak imbas

How to Implement Case-Insensitive Sorting in Cloud Firestore?

Cloud Firestore: Mencapai Pengisihan Tidak Peka Huruf Menggunakan Pertanyaan

Dalam Cloud Firestore, mengisih data menggunakan fungsi OrderBy() adalah sensitif huruf besar-besaran , menghasilkan susunan rentetan berdasarkan kesnya, seperti yang ditunjukkan dalam contoh yang disediakan. Walau bagaimanapun, mungkin terdapat senario di mana pengisihan tidak peka huruf besar/kecil lebih diutamakan.

Penghadan Pengisihan Tidak sensitif huruf besar/kecil

Firestore tidak menyediakan penyelesaian langsung untuk pengisihan tidak sensitif huruf besar/kecil menggunakan pertanyaan. Ini kerana operasi pengisihan dan penapisan dijalankan secara dalaman oleh pangkalan data, yang beroperasi pada data sebenar yang disimpan.

Penyelesaian: Menyimpan Medan Pendua

Pendekatan yang disyorkan untuk mencapai pengisihan tidak sensitif huruf besar-besaran ialah menyimpan data dua kali:

  • Kes Asal: Simpan data dalam kes asalnya, memastikan integriti dan ketepatan data.
  • Tidak sensitif huruf: Simpan medan tambahan dengan data yang sama ditukar kepada format tidak sensitif huruf besar, seperti huruf kecil.

Sebagai contoh, pertimbangkan medan bernama "myData" dengan nilai "AAA" dan "aaa". Untuk mencapai pengisihan tidak peka huruf besar-kecil, buat medan tambahan "myData_insensitive" dan simpan nilai sebagai "AAA" untuk kedua-duanya.

Menyoal dan Memaparkan Data

Apabila melakukan pertanyaan dan mengisih, nyatakan medan "myData_insensitive". Ini memastikan bahawa pesanan akan berdasarkan versi data yang tidak sensitif huruf besar-besaran. Walau bagaimanapun, apabila memaparkan keputusan, rujuk medan "myData" asal untuk mengekalkan ketepatan data.

Pertimbangan Unikod

Penormalan kes adalah penting apabila melaksanakan pengisihan tidak sensitif huruf besar-besaran untuk mengendalikan aksara Unicode dengan betul. Ini melibatkan penukaran aksara kepada format biasa, memastikan pengisihan konsisten untuk rentetan yang mengandungi aksen dan aksara khas. Pendekatan yang berbeza boleh digunakan untuk penormalan, seperti lipatan huruf besar kecil.

Contoh Pelaksanaan

Kod JavaScript berikut menunjukkan cara untuk mencapai pengisihan tidak sensitif huruf besar-besaran menggunakan medan pendua:

<code class="javascript">firestore.collection("cities").where("myData_insensitive", ">=", "AAA").where("myData_insensitive", "<=", "aaa").orderBy("myData_insensitive")</code>

Pertanyaan ini akan mengembalikan "AAA" dan "aaa" dalam susunan tidak sensitif huruf besar-kecil.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pengisihan Case-Insensitive dalam Cloud 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