Maison  >  Article  >  interface Web  >  Comment réaliser un tri insensible à la casse avec les requêtes Firestore ?

Comment réaliser un tri insensible à la casse avec les requêtes Firestore ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-22 08:53:30743parcourir

How to Achieve Case-Insensitive Sorting with Firestore Queries?

Tri Cloud Firestore insensible à la casse avec requêtes

Cloud Firestore prend en charge le tri des données à l'aide de la méthode OrderBy, mais il le fait dans un cas- manière sensible. Cela peut conduire à des résultats inattendus lors du tri de chaînes qui diffèrent uniquement par la casse.

Pour obtenir un tri insensible à la casse, une solution de contournement consiste à stocker les données deux fois : une fois dans leur casse d'origine et une fois dans un format insensible à la casse. Cela permet d'effectuer des requêtes sur la version des données insensible à la casse tout en affichant les données d'origine.

Voici comment cela fonctionne :

  • Créez un nouveau champ dans votre document qui stocke une version insensible à la casse du champ d'origine. Par exemple, si votre champ d'origine s'appelle « myData », créez un nouveau champ appelé « myData_insensitive ».
  • Utilisez la fonction JavaScript suivante pour normaliser la casse de la chaîne avant de la stocker dans « myData_insensitive » :
<code class="javascript">caseFoldNormalize = function (s) {
  return s.normalize('NFKC').toLowerCase().toUpperCase().toLowerCase();
};</code>
  • Vous pouvez désormais interroger votre collection Firestore à l'aide de OrderBy sur le champ "myData_insensitive" pour effectuer un tri insensible à la casse.

En suivant ces étapes, vous pouvez trier vos données sans tenir compte de la casse sans avoir à recourir à un tri manuel. Notez que cette solution de contournement nécessite le stockage de données en double, ce qui peut avoir des implications en termes de performances pour les grands ensembles de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn