Heim  >  Artikel  >  Web-Frontend  >  Wie implementiert man die Sortierung ohne Berücksichtigung der Groß-/Kleinschreibung mit der Abfrage von Cloud Firestore?

Wie implementiert man die Sortierung ohne Berücksichtigung der Groß-/Kleinschreibung mit der Abfrage von Cloud Firestore?

Linda Hamilton
Linda HamiltonOriginal
2024-10-22 08:54:03631Durchsuche

How to Implement Case-Insensitive Sorting with Cloud Firestore's Query?

Firestore-Sortierung ohne Berücksichtigung der Groß-/Kleinschreibung mit der Abfrage von Cloud Firestore

In Cloud Firestore wird bei der Datensortierung grundsätzlich die Groß-/Kleinschreibung beachtet. Mithilfe der OrderBy-Methode werden Daten basierend auf dem angegebenen Feld in aufsteigender oder absteigender Reihenfolge sortiert. Wenn die Daten jedoch Abweichungen in der Groß-/Kleinschreibung enthalten, wie etwa „AAA“ und „aaa“, entspricht die zurückgegebene Reihenfolge möglicherweise nicht der gewünschten Reihenfolge.

Das Problem mit der Groß-/Kleinschreibung beim Sortieren

Standardmäßig sortiert Firestore Daten in der folgenden Reihenfolge:

AAA
BBB
aaa
bbb

Die Erwartung könnte jedoch lauten:

AAA
aaa
BBB
bbb

Lösung: Speichern von Daten ohne Berücksichtigung der Groß- und Kleinschreibung

Da Firestore kein integriertes Flag zum Ignorieren der Groß-/Kleinschreibung beim Sortieren bereitstellt, besteht die einzige Möglichkeit, eine Sortierung ohne Berücksichtigung der Groß-/Kleinschreibung zu erreichen, darin, ein zusätzliches Feld zu speichern, das eine Version der Daten enthält, die die Groß-/Kleinschreibung nicht berücksichtigt.

Stellen Sie sich ein Feld namens myData vor, das die Werte „AAA“ und „aaa“ speichert. Um die Sortierung ohne Berücksichtigung der Groß-/Kleinschreibung zu ermöglichen, müssen Sie ein zweites Feld namens myData_insensitive mit der Version der Daten ohne Berücksichtigung der Groß-/Kleinschreibung speichern:

DocA:
-> myData = 'AAA'
-> myData_insensitive = 'AAA'

DocB:
-> myData = 'aaa'
-> myData_insensitive = 'AAA'

DocC:
-> myData = 'BBB'
-> myData_insensitive = 'BBB'

DocD:
-> myData = 'bbb'
-> myData_insensitive = 'BBB'

Abfragen und Sortieren nach Daten ohne Berücksichtigung der Groß-/Kleinschreibung

Sie können jetzt Daten nach myData_insensitive abfragen und ordnen, was das gewünschte Sortierergebnis ohne Berücksichtigung der Groß-/Kleinschreibung liefert.

Unicode und lokale Überlegungen

Das ist wichtig Beachten Sie, dass die Normalisierung der Groß-/Kleinschreibung für Unicode komplexer ist als die einfache Konvertierung in Klein- oder Großbuchstaben. Sprachen können unterschiedliche Sortierregeln haben, die sich auf die Sortierung von Zeichen auswirken.

Verwenden der Groß-/Kleinschreibung zur Groß-/Kleinschreibung

Um diese Komplexität zu bewältigen, können Sie die Groß-/Kleinschreibung mithilfe der Groß-/Kleinschreibung implementieren , wodurch sichergestellt wird, dass Zeichen mit unterschiedlichen Groß- und Kleinschreibungsformen (z. B. „a“, „A“) als gleichwertig behandelt werden. Moderne Browser unterstützen hierfür native Funktionen.

Hier ein Beispiel:

<code class="javascript">caseFoldNormalize = function (s) {
  return s.normalize('NFKC').toLowerCase().toUpperCase().toLowerCase();
};</code>

Dieses Beispiel konvertiert die Zeichenfolge s in die vollständig normalisierte Version, wobei Groß- und Kleinschreibung ignoriert wird.

Von Mithilfe der Sortierung und Normalisierung ohne Berücksichtigung der Groß- und Kleinschreibung können Sie Daten in Cloud Firestore effektiv ohne Berücksichtigung der Groß- und Kleinschreibung sortieren und so eine konsistente Datenreihenfolge unabhängig von Groß- und Kleinschreibung gewährleisten.

Das obige ist der detaillierte Inhalt vonWie implementiert man die Sortierung ohne Berücksichtigung der Groß-/Kleinschreibung mit der Abfrage von Cloud Firestore?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn