지원되는 데이터 유형
이 페이지에서는 Firestore에서 지원하는 데이터 유형을 설명합니다.
데이터 유형
다음 표에는 Firestore에서 지원하는 데이터 유형이 나와 있습니다. 또한 동일한 유형의 값을 비교할 때 사용되는 정렬 순서도 설명합니다.
데이터 유형 | 정렬 순서 | 참고 |
---|---|---|
배열 | 요소 값 기준 |
한 배열이 다른 배열 값을 요소 중 하나로 포함할 수 없습니다. 한 배열 내에서 요소는 할당된 위치를 유지합니다. 배열을 여러 개 정렬하면 배열이 요소 값을 기준으로 정렬됩니다.
두 배열을 비교할 때는 각 배열의 첫 번째 요소가 비교됩니다. 첫 번째 요소가 같으면 그 다음 요소를 비교하는 식으로 차이가 발견될 때까지 이 과정이 반복됩니다. 배열에 비교할 요소가 더 이상 없으나 끝까지 요소가 동일하다면 길이가 짧은 배열이 긴 배열보다 먼저 정렬됩니다. 예를 들면 |
부울 | false < true |
— |
바이트 | 바이트순 | 최대 1,048,487바이트(1MiB에서 89바이트를 뺀 값)입니다. 쿼리에서 처음 1,500바이트만 고려됩니다. |
날짜 및 시간 | 시간순 | Firestore에 저장될 때는 마이크로초까지만 정확하며 그 이상의 정밀도는 버림 처리됩니다. |
부동 소수점 수 | 숫자 | 64비트 배정밀도이며 IEEE 754입니다. |
지리적 지점 | 위도순 우선 적용 후 경도순 | 현재 쿼리 제한사항으로 인해 이 데이터 유형은 사용하지 않는 것이 좋습니다. 일반적으로 위도와 경도를 별도의 숫자 필드로 저장하는 것이 좋습니다. 앱에 간단한 거리 기반 지역 쿼리가 필요한 경우 지역 쿼리를 참조하세요. |
정수 | 숫자 | 64비트, 서명됨 |
맵 | 키 기준 우선 적용, 그 다음 값 기준 적용 | 문서 내에 삽입된 객체를 나타냅니다. 색인 처리하면 하위 필드를 쿼리할 수 있습니다. 이 값을 색인 처리에서 제외할 경우 하위 필드도 모두 색인 처리에서 제외됩니다.
키 순서는 항상 정렬됩니다. 예를 들어 맵 필드는 키를 기준으로 정렬되고 키-값 쌍을 기준으로 비교됩니다. 먼저 키와 비교한 후 값으로 비교합니다. 첫 번째 키-값 쌍이 동일한 경우 다음 키-값 쌍이 비교되고 이것이 반복됩니다. 두 맵이 동일한 키-값 쌍으로 시작되는 경우 맵 길이가 고려됩니다. 예를 들어, 다음은 맵이 오름차순으로 정렬된 경우입니다.
|
NaN | 없음 | — |
Null | 없음 | — |
참조 | 경로 요소순(컬렉션, 문서 ID, 컬렉션, 문서 ID...) | 예를 들면 projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH] 입니다. |
텍스트 문자열 | UTF-8로 인코딩된 바이트순 | 최대 1,048,487바이트(1MiB에서 89바이트를 뺀 값)입니다. 쿼리에서 UTF-8로 표시된 처음 1,500바이트만 고려됩니다. |
값 유형 순서
쿼리에 혼합 유형 값이 있는 필드가 있으면 Firestore는 내부 표시를 기준으로 확정된 순서를 사용합니다. 순서는 다음 목록과 같습니다.
- Null 값
- 부울 값
- NaN 값
- 숫자순으로 정렬된 정수 및 부동 소수점 값
- 날짜 값
- 텍스트 문자열 값
- 바이트 값
- Firestore 참조
- 지리적 지점 값
- 배열 값
- 지도 값