Obsługiwane typy danych

Na tej stronie opisujemy typy danych obsługiwane przez Cloud Firestore.

Typy danych

W tabeli poniżej znajdziesz typy danych obsługiwane przez Cloud Firestore. Opisuje też kolejność sortowania używaną podczas porównywania wartości tego samego typu:

Typ danych Kolejność sortowania Uwagi
Tablica Według wartości elementów

W bazach danych w wersji Standard tablica nie może zawierać innej wartości tablicy jako jednego z elementów. W bazach danych w wersji Enterprise tablica może zawierać wartość tablicy jako jeden z elementów.

W tablicy elementy zachowują przypisaną im pozycję. Podczas sortowania co najmniej 2 tablic są one porządkowane na podstawie wartości ich elementów.

Podczas porównywania 2 tablic porównywane są ich pierwsze elementy. Jeśli pierwsze elementy są równe, porównywane są drugie elementy i tak dalej, aż do znalezienia różnicy. Jeśli w tablicy skończą się elementy do porównania, ale do tego momentu jest ona równa, krótsza tablica jest porządkowana przed dłuższą.

Na przykład: [1, 2, 3] < [1, 2, 3, 1] < [2]. Tablica [2] ma największą wartość pierwszego elementu. Tablica [1, 2, 3] ma elementy równe pierwszym 3 elementom tablicy [1, 2, 3, 1], ale jest krótsza.

Wartość logiczna false < true –
Bajty Kolejność bajtów W bazach danych w wersji Standard wartość nie może przekraczać 1 048 487 bajtów (1 MiB – 89 bajtów), a zapytania uwzględniają tylko pierwsze 1500 bajtów. W bazach danych w wersji Enterprise nie ma limitu rozmiaru wartości (poza limitami rozmiaru dokumentu i wpisu indeksu), a zapytania uwzględniają pełną wartość.
Data i godzina Chronologicznie W przypadku przechowywania w Cloud Firestore dokładność jest ograniczona do mikrosekund. Dodatkowa precyzja jest zaokrąglana w dół.
Liczba zmiennoprzecinkowa Dane liczbowe 64-bitowa podwójna precyzja zgodnie ze standardem IEEE 754, w tym (znormalizowane) NaN i +/-Infinity.
Punkt geograficzny Według szerokości, a następnie długości geograficznej Aby wyszukiwać na podstawie odległości, zapoznaj się z artykułem Wyszukiwanie geoprzestrzenne.
Liczba całkowita Dane liczbowe 64-bitowa, ze znakiem
Mapa Według kluczy, a następnie według wartości

Reprezentuje obiekt umieszczony w dokumencie. Po zindeksowaniu możesz wysyłać zapytania dotyczące pól podrzędnych. Jeśli wykluczysz tę wartość z indeksowania, wszystkie podpola również zostaną wykluczone z indeksowania.

Klucze są zawsze sortowane. Jeśli na przykład wpiszesz {c: "foo", a: "bar", b: "qux"}, mapa zostanie posortowana według klucza i zapisana jako {a: "bar", b: "qux", c: "foo"}.

Pola mapy są sortowane według klucza i porównywane według par klucz-wartość, najpierw klucze, a następnie wartości. Jeśli pierwsze pary klucz-wartość są równe, porównywane są kolejne pary klucz-wartość itd. Jeśli 2 mapy mają takie same pary klucz-wartość, brana jest pod uwagę długość mapy. Na przykład te mapy są uporządkowane rosnąco:

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

Null Brak –
Źródła wiedzy Według elementów ścieżki (kolekcja, identyfikator dokumentu, kolekcja, identyfikator dokumentu…) Na przykład: projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH].
Ciąg tekstowy Kolejność bajtów zakodowanych w formacie UTF-8 W bazach danych w wersji Standard wartość nie może przekraczać 1 048 487 bajtów (1 MiB – 89 bajtów), a zapytania uwzględniają tylko pierwsze 1500 bajtów. W bazach danych w wersji Enterprise nie ma limitu rozmiaru wartości (poza limitami rozmiaru dokumentu i wpisu indeksu), a zapytania uwzględniają pełną wartość.
Wektor Według wymiaru, a następnie według wartości poszczególnych elementów. Maksymalny obsługiwany wymiar wektora dystrybucyjnego to 2048. Aby przechowywać wektory o większych wymiarach, użyj redukcji wymiarowości.

Kolejność typów wartości

Gdy zapytanie dotyczy pola z wartościami różnych typów, Cloud Firestore używa deterministycznego porządkowania na podstawie wewnętrznych reprezentacji. Lista poniżej przedstawia kolejność:

  1. Wartości null
  2. Wartości logiczne
  3. Liczby całkowite i wartości zmiennoprzecinkowe posortowane w porządku numerycznym.
  4. Wartości daty
  5. Wartości ciągów tekstowych
  6. Wartości bajtów
  7. Cloud Firestore odniesienie
  8. Wartości punktów geograficznych
  9. Wartości tablicy
  10. Wektory dystrybucyjne
  11. Wartości mapy

Kolejność numeryczna

Cloud Firestore sortuje wszystkie wartości liczbowe (Integer i Floating point) przeplatane ze sobą. Porównanie liczb zmiennoprzecinkowych jest zgodne z całkowitym porządkiem IEEE 754 z wyjątkiem tego, że Cloud Firestore normalizuje wszystkie wartości NaN i uznaje je za mniejsze niż -Infinity.