지원되는 데이터 유형

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

데이터 유형

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

데이터 유형 정렬 순서 참고
32비트 정수 숫자

32비트, 부호 있음

참고: Enterprise 버전에서만 지원됩니다.

64비트 정수 숫자 64비트, 서명됨
배열 요소 값 기준

Standard 버전 데이터베이스에서 배열은 다른 배열 값을 요소 중 하나로 포함할 수 없습니다. Enterprise 버전 데이터베이스에서 배열은 배열 값을 요소 중 하나로 포함할 수 있습니다.

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

두 배열을 비교할 때는 각 배열의 첫 번째 요소가 비교됩니다. 첫 번째 요소가 같으면 두 번째 요소가 비교되고 차이점이 발견될 때까지 계속됩니다. 배열에 비교할 요소가 더 이상 없으나 끝까지 요소가 동일하다면 길이가 짧은 배열이 긴 배열보다 먼저 정렬됩니다.

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

부울 false < true —
BSON 타임스탬프 시간순

Unix 초와 증분 카운터로 구성된 64비트 타임스탬프 값입니다.

참고: Enterprise 버전에서만 지원됩니다.

바이트 바이트순 Standard 버전 데이터베이스에서 값은 1,048,487바이트 (1MiB - 89바이트)를 초과해서는 안 되며 처음 1,500바이트만 쿼리에서 고려됩니다. Enterprise 버전 데이터베이스에서는 값 크기에 제한이 없으며 (문서 및 색인 항목 크기 제한 제외) 전체 값이 쿼리에 의해 고려됩니다.
하위유형이 있는 바이트 바이트 순서 (하위유형, 값)

BSON 하위 유형 표시기가 있는 바이너리 바이트 시퀀스입니다.

참고: Enterprise 버전에서만 지원됩니다.

날짜 및 시간 시간순 Firestore에 저장될 때는 마이크로초까지만 정확하며 그 이상의 정밀도는 버림 처리됩니다.
Decimal128 숫자

고정밀 연산을 위한 128비트 십진 부동 소수점 수입니다.

참고: Enterprise 버전에서만 지원됩니다.

부동 소수점 수 숫자 (정규화된) NaN 및 +/-Infinity를 포함하여 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"}

최대 키 없음

다른 모든 값보다 큰 특수 값입니다.

참고: Enterprise 버전에서만 지원됩니다.

Min key 없음

다른 모든 값 (null 제외)보다 작게 비교되는 특수 값입니다.

참고: Enterprise 버전에서만 지원됩니다.

Null 없음 —
ObjectId 바이트순

12바이트 객체 식별자입니다.

참고: Enterprise 버전에서만 지원됩니다.

참조 경로 요소순(컬렉션, 문서 ID, 컬렉션, 문서 ID…) 예를 들면 projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH]입니다.
정규 표현식 패턴별, 옵션별

정규 표현식 패턴 및 옵션입니다.

참고: Enterprise 버전에서만 지원됩니다.

텍스트 문자열 UTF-8로 인코딩된 바이트순 Standard 버전 데이터베이스에서 값은 1,048,487바이트 (1MiB - 89바이트)를 초과해서는 안 되며 처음 1,500바이트만 쿼리에서 고려됩니다. Enterprise 버전 데이터베이스에서는 값 크기에 제한이 없으며 (문서 및 색인 항목 크기 제한 제외) 전체 값이 쿼리에 의해 고려됩니다.
벡터 차원 및 개별 요소 값 기준 지원되는 최대 임베딩 차원은 2048입니다. 더 큰 차원의 벡터를 저장하려면 차원 축소를 사용하세요.

값 유형 순서

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

  1. null 값
  2. 최소 키 값 (Enterprise 버전만 해당)
  3. 부울 값
  4. 숫자순으로 정렬된 64비트 정수 및 부동 소수점 값 Enterprise 버전 데이터베이스에는 32비트 정수 및 Decimal128 값도 포함됩니다.
  5. 날짜 값
  6. 텍스트 문자열 값
  7. 바이트 값입니다. Enterprise 버전에서는 하위유형 값이 있는 바이트도 포함됩니다.
  8. Firestore 참조
  9. ObjectId 값 (Enterprise 버전만 해당)
  10. 지리적 지점 값
  11. 정규 표현식 (Enterprise 버전만 해당)
  12. 배열 값
  13. 벡터 임베딩
  14. 지도 값
  15. 최대 키 값 (Enterprise 버전만 해당)

숫자 순서

Firestore는 서로 인터리브 처리된 모든 숫자 값 (Integer 및 Floating point)을 정렬합니다. 부동 소수점 비교는 IEEE 754의 전체 순서를 따르며, 특이한 예외로는 Firestore가 모든 NaN 값을 정규화하고 -Infinity보다 작다고 간주한다는 점입니다.