>웹 프론트엔드 >JS 튜토리얼 >Firestore 쿼리로 대소문자를 구분하지 않는 정렬을 달성하는 방법은 무엇입니까?

Firestore 쿼리로 대소문자를 구분하지 않는 정렬을 달성하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-22 08:53:30747검색

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으로 문의하세요.