지원되는 데이터 유형

이 페이지에서는 Cloud Firestore에서 지원하는 데이터 유형을 설명합니다.

데이터 유형

다음 표에는 Cloud Firestore에서 지원하는 데이터 유형이 나와 있습니다. 동일 유형의 값을 비교할 때 사용되는 정렬 순서도 설명하고 있습니다.

데이터 유형 정렬 순서 참고
배열 요소 값 기준

한 배열이 다른 배열 값을 요소 중 하나로 포함할 수 없습니다.

한 배열 내에서 요소는 할당된 위치를 유지합니다. 배열을 여러 개 정렬하면 배열이 요소 값을 기준으로 정렬됩니다.

두 배열을 비교할 때는 각 배열의 첫 번째 요소가 비교됩니다. 첫 번째 요소가 같으면 그 다음 요소를 비교하는 식으로 차이가 발견될 때까지 이 과정이 반복됩니다. 배열에 비교할 요소가 더 이상 없으나 끝까지 요소가 동일하다면 길이가 짧은 배열이 긴 배열보다 먼저 정렬됩니다.

예를 들면 [1, 2, 3] < [1, 2, 3, 1] < [2]입니다. [2] 배열에 가장 큰 첫 번째 요소 값이 있습니다. [1, 2, 3] 배열은 [1, 2, 3, 1]의 처음 세 요소와 동일하지만 길이가 더 짧습니다.

부울 false < true
바이트 바이트순 최대 1,048,487바이트(1MiB에서 89바이트를 뺀 값)입니다. 쿼리에서 처음 1,500바이트만 고려됩니다.
날짜 및 시간 시간순 Cloud Firestore에 저장될 때는 마이크로초까지만 정확하며 그 이상의 정밀도는 버림 처리됩니다.
부동 소수점 수 숫자 64비트 배정밀도이며 IEEE 754입니다.
지리적 지점 위도순 우선 적용 후 경도순 현재 쿼리 제한사항으로 인해 이 데이터 유형은 사용하지 않는 것이 좋습니다. 일반적으로 위도와 경도를 별도의 숫자 필드로 저장하는 것이 좋습니다. 앱에 간단한 거리 기반 지역 쿼리가 필요한 경우 지역 쿼리를 참조하세요.
정수 숫자 64비트, 서명됨
지도 키 기준 우선 적용, 그 다음 값 기준 적용

문서 내에 삽입된 객체를 나타냅니다. 색인 처리하면 하위 필드를 쿼리할 수 있습니다. 이 값을 색인 처리에서 제외할 경우 하위 필드도 모두 색인 처리에서 제외됩니다.

키 순서는 항상 정렬됩니다. 예를 들어 {c: "foo", a: "bar", b: "qux"}를 작성하면 지도가 키를 기준으로 정렬되고 {a: "bar", b: "qux", c: "foo"}로 저장됩니다.

맵 필드는 키를 기준으로 정렬되고 키-값 쌍을 기준으로 비교됩니다. 먼저 키와 비교한 후 값으로 비교합니다. 첫 번째 키-값 쌍이 동일한 경우 다음 키-값 쌍이 비교되고 이것이 반복됩니다. 두 맵의 키-값 쌍이 모두 동일한 경우 맵 길이가 고려됩니다. 예를 들어, 다음은 맵이 오름차순으로 정렬된 경우입니다.

{a: "aaa", b: "baz"}
{a: "foo", b: "bar"}
{a: "foo", b: "bar", c: "qux"}
{a: "foo", b: "baz"}
{b: "aaa", c: "baz"}
{c: "aaa"}

NaN 없음
Null 없음
참조 경로 요소순(컬렉션, 문서 ID, 컬렉션, 문서 ID...) 예를 들면 projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH]입니다.
텍스트 문자열 UTF-8로 인코딩된 바이트순 최대 1,048,487바이트(1MiB에서 89바이트를 뺀 값)입니다. 쿼리에서 UTF-8로 표시된 처음 1,500바이트만 고려됩니다.
벡터 차원 및 개별 요소 값 기준 지원되는 최대 임베딩 차원은 2048입니다. 더 큰 차원의 벡터를 저장하려면 차원 축소를 사용하세요.

값 유형 순서

쿼리에 혼합 유형 값이 있는 필드가 있으면 Cloud Firestore는 내부 표시를 기준으로 확정된 순서를 사용합니다. 순서는 다음 목록과 같습니다.

  1. Null 값
  2. 부울 값
  3. NaN 값
  4. 숫자순으로 정렬된 정수 및 부동 소수점 값
  5. 날짜 값
  6. 텍스트 문자열 값
  7. 바이트 값
  8. Cloud Firestore 참조
  9. 지리적 지점 값
  10. 배열 값
  11. 벡터 임베딩
  12. 지도 값