首页  >  文章  >  web前端  >  如何使用 Firestore 查询实现不区分大小写的排序?

如何使用 Firestore 查询实现不区分大小写的排序?

Patricia Arquette
Patricia Arquette原创
2024-10-22 08:53:30673浏览

How to Achieve Case-Insensitive Sorting with Firestore Queries?

Cloud Firestore 通过查询进行不区分大小写的排序

Cloud Firestore 支持使用 OrderBy 方法对数据进行排序,但在以下情况下会这样做 -敏感的方式。对仅大小写不同的字符串进行排序时,这可能会导致意外结果。

为了实现不区分大小写的排序,解决方法是将数据存储两次:一次采用原始大小写,一次采用不区分大小写的格式。这允许在显示原始数据时对不区分大小写的数据版本执行查询。

其工作原理如下:

  • 在文档中创建一个新字段来存储原始字段的不区分大小写的版本。例如,如果您的原始字段名为“myData”,请创建一个名为“myData_insensitive”的新字段。
  • 在将字符串存储到“myData_insensitive”之前,使用以下 JavaScript 函数规范字符串的大小写:
<code class="javascript">caseFoldNormalize = function (s) {
  return s.normalize('NFKC').toLowerCase().toUpperCase().toLowerCase();
};</code>
  • 现在,您可以在“myData_insensitive”字段上使用 OrderBy 查询 Firestore 集合,以实现不区分大小写的排序。

通过执行以下步骤,您可以以不区分大小写的方式对数据进行排序,而无需手动排序。请注意,此解决方法需要存储重复数据,这可能会对大型数据集产生性能影响。

以上是如何使用 Firestore 查询实现不区分大小写的排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn