Maison  >  Article  >  interface Web  >  Comment implémenter le tri insensible à la casse dans Cloud Firestore ?

Comment implémenter le tri insensible à la casse dans Cloud Firestore ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-22 08:52:30333parcourir

How to Implement Case-Insensitive Sorting in Cloud Firestore?

Cloud Firestore : réaliser un tri insensible à la casse à l'aide de requêtes

Dans Cloud Firestore, le tri des données à l'aide de la fonction OrderBy() est sensible à la casse , ce qui entraîne l'ordre des chaînes en fonction de leur casse, comme le montre l'exemple fourni. Cependant, il peut y avoir des scénarios dans lesquels le tri insensible à la casse est préféré.

Limitations du tri insensible à la casse

Firestore ne fournit pas de solution directe pour le tri insensible à la casse à l'aide de requêtes. En effet, les opérations de tri et de filtrage sont effectuées en interne par la base de données, qui opère sur les données réelles stockées.

Solution de contournement : stockage des champs en double

L'approche recommandée pour réaliser un tri insensible à la casse consiste à stocker les données deux fois :

  • Boîtier d'origine : Stockez les données dans leur boîtier d'origine, garantissant l'intégrité et la précision des données.
  • Insensible à la casse : Stockez un champ supplémentaire avec les mêmes données converties dans un format insensible à la casse, tel que les minuscules.

Par exemple, considérons un champ nommé "myData" avec valeurs « AAA » et « aaa ». Pour réaliser un tri insensible à la casse, créez un champ supplémentaire « myData_insensitive » et stockez les valeurs au format « AAA » pour les deux.

Interrogation et affichage des données

Lors de l'exécution de requêtes et tri, précisez le champ "myData_insensitive". Cela garantit que la commande sera basée sur la version des données qui ne respecte pas la casse. Cependant, lors de l'affichage des résultats, reportez-vous au champ "myData" d'origine pour maintenir l'exactitude des données.

Considérations Unicode

La normalisation de la casse est essentielle lors de la mise en œuvre d'un tri insensible à la casse pour gérer correctement les caractères Unicode. Cela implique de convertir les caractères dans un format normalisé, garantissant un tri cohérent pour les chaînes contenant des accents et des caractères spéciaux. Différentes approches peuvent être utilisées pour la normalisation, telles que le pliage de casse.

Exemple d'implémentation

Le code JavaScript suivant montre comment réaliser un tri insensible à la casse à l'aide de champs en double :

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

Cette requête renverra "AAA" et "aaa" dans un ordre insensible à la casse.

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