首頁 >web前端 >js教程 >如何使用 Cloud Firestore 的查詢實作不區分大小寫的排序?

如何使用 Cloud Firestore 的查詢實作不區分大小寫的排序?

Linda Hamilton
Linda Hamilton原創
2024-10-22 08:54:03638瀏覽

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

Firestore 使用Cloud Firestore 查詢進行不區分大小寫的排序

在Cloud Firestore 中,排序本質上是區分大小寫的排序。使用 OrderBy 方法根據指定欄位按升序或降序對資料進行排序。但是,如果資料包含大小寫變化,例如“AAA”和“aaa”,則傳回的順序可能不符合預期。

區分大小寫排序的問題

預設情況下,Firestore 會依照以下順序對資料進行排序:

但是,期望可能是:

解決方案:儲存不區分大小寫的資料

由於Firestore 不提供內建標誌在排序過程中忽略大小寫,因此實現不區分大小寫排序的唯一方法是儲存包含不區分大小寫版本的資料的附加欄位。

考慮一個名為 myData 的字段,它儲存值「AAA」和「aaa」。要使排序不區分大小寫,您需要儲存第二個名為myData_insensitive 的字段,其中包含不區分大小寫的資料版本:

按不區分大小寫的資料查詢和排序

您現在可以透過myData_insensitive 查詢和排序數據,這將提供所需的不區分大小寫的排序結果。

Unicode 和本地註意事項

這很重要需要注意的是,Unicode 的大小寫標準化比簡單地轉換為小寫或大寫更複雜。語言可能有不同的排序規則,影響字元的排序方式。

使用大小寫折疊進行大小寫標準化

要解決這些複雜性,您可以使用大小寫折疊實現大小寫標準化,這確保不同大小寫形式的字元(例如“a”、“A”)被視為等效。現代瀏覽器支援此功能的本機函數。

這是一個範例:

此範例將字串 s 轉換為完全規範化的版本,忽略大小寫差異。

透過利用不區分大小寫的排序和規範化,您可以以不區分大小寫的方式對 Cloud Firestore 中的資料進行有效排序,從而確保資料排序的一致性,無論大小寫如何變化。

以上是如何使用 Cloud Firestore 的查詢實作不區分大小寫的排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn