Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie kann ich in Cloud Firestore eine Sortierung ohne Berücksichtigung der Groß-/Kleinschreibung erreichen?

Linda Hamilton
Freigeben: 2024-10-22 08:52:02
Original
880 Leute haben es durchsucht

How Can I Achieve Case-Insensitive Sorting in Cloud Firestore?

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

Cloud Firestore erfordert, dass sowohl Abfragen als auch Filter die Groß-/Kleinschreibung berücksichtigen, sodass Entwickler nach alternativen Ansätzen für die Sortierung ohne Berücksichtigung der Groß-/Kleinschreibung suchen müssen . Um dieses Problem zu lösen, besteht eine beliebte Technik darin, doppelte Felder zu erstellen und gleichzeitig Kopien der Daten beizubehalten, bei denen die Groß-/Kleinschreibung nicht beachtet wird.

Erstellen eines Felds, bei dem die Groß-/Kleinschreibung nicht berücksichtigt wird

Durch die Erstellung eines sekundären Felds mit einer Version in Kleinbuchstaben Basierend auf diesem Feld, bei dem die Groß-/Kleinschreibung nicht beachtet wird, können Originaldaten sortiert und gefiltert werden. Beispielsweise könnte ein Feld namens „myData“ ein entsprechendes „myData_insensitive“-Feld haben, in dem alle Werte in Kleinbuchstaben umgewandelt werden.

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

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

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

DocD:
-> myData = 'bbb'
-> myData_insensitive = 'bbb'
Nach dem Login kopieren

Groß-/Kleinschreibung für Unicode

Für die Unicode-Unterstützung wird die Groß-/Kleinschreibung empfohlen Es übernimmt die komplexe Zeichennormalisierung und die Sortierung ohne Berücksichtigung der Groß- und Kleinschreibung. Das folgende JavaScript-Snippet bietet ein Beispiel für die Implementierung der Groß-/Kleinschreibung:

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

Beispielcode

Dieses Code-Snippet zeigt, wie ein Firestore-Dokument mit Feldern erstellt wird, bei denen die Groß-/Kleinschreibung nicht berücksichtigt wird:

<code class="javascript">var raw_document = {
  name: "Los Angeles",
  state: "CA",
  country: "USA",
  structure: 'Waſſerſchloß',
  message: 'quıt quit' // Notice the different i's
};

var field_options = {
  name: 'case_fold',
  country: 'case_fold',
  structure: 'case_fold',
  message: 'case_fold'
}

var firestore_document = caseFoldDoc(raw_document, field_options);

db.collection("cities").doc("LA").set(firestore_document).then(function() {
  console.log("Document successfully written!");
}).catch(function(error) {
  console.error("Error writing document: ", error);
});</code>
Nach dem Login kopieren

Dies führt zu einem Dokument mit Feldern, bei denen sowohl die Groß-/Kleinschreibung als auch die Groß-/Kleinschreibung nicht berücksichtigt werden:

<code class="javascript">{ 
 "name": "Los Angeles", 
 "state": "CA", 
 "country": "USA", 
 "structure": "Waſſerſchloß", 
 "message": "quıt quit", 
 "name_casefold": "los angeles", 
 "country_casefold": "usa", 
 "structure_casefold": "wasserschloss", 
 "message_casefold": "quit quit"
}</code>
Nach dem Login kopieren

Denken Sie daran, dass diese Technik zwar eine Lösung für die Sortierung ohne Berücksichtigung der Groß-/Kleinschreibung in Firestore bietet erfordert zusätzlichen Speicherplatz und verursacht Verarbeitungskosten für jede Dokumentenaktualisierung. Berücksichtigen Sie wie bei jeder Lösung die Kompromisse und wählen Sie den Ansatz, der am besten zu Ihren Anwendungsanforderungen passt.

Das obige ist der detaillierte Inhalt vonWie kann ich in Cloud Firestore eine Sortierung ohne Berücksichtigung der Groß-/Kleinschreibung erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!