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 on też kolejność sortowania stosowana przy porównywaniu wartości tego samego typu:
Typ danych | Kolejność sortowania | Notatki |
---|---|---|
Tablica | Według wartości elementów |
Tablica nie może zawierać innej wartości tablicy jako jednego z jej elementów. Elementy w tablicy zachowują przypisaną do nich pozycję. Podczas sortowania co najmniej 2 tablic tablice są uporządkowane według wartości elementów.
Gdy porównujesz 2 tablice, porównywane są pierwsze elementy każdej z nich. Jeśli pierwsze elementy są równe, drugie są porównywane i tak dalej, aż znajdzie się różnica. Jeśli w tablicy brakuje elementów do porównania, ale jest ona równa do tego momentu, krótsza tablica jest uporządkowana przed dłuższą. Na przykład: |
Wartość logiczna | false < true |
– |
Bajty | Kolejność bajtów | Maks. 1 048 487 bajtów (1 MiB–89 bajtów). Zapytania uwzględniają tylko pierwsze 1500 bajtów. |
Data i godzina | Chronologicznie | W przypadku przechowywania w Cloud Firestore można to robić precyzyjnie tylko w mikrosekundach. Dodatkowa precyzja jest zaokrąglana w dół. |
Liczba zmiennoprzecinkowa | Wartość liczbowa | Podwójna precyzja 64-bitowa, IEEE 754. |
Punkt geograficzny | Według szerokości, a następnie długości geograficznej | W tej chwili nie zalecamy korzystania z tego typu danych ze względu na ograniczenia zapytań. Długość i szerokość geograficzna lepiej jest zapisywać jako osobne pola liczbowe. Jeśli Twoja aplikacja wymaga prostych zapytań geograficznych opartych na odległości, zapoznaj się z sekcją Zapytania geograficzne. |
Liczba całkowita | Wartość liczbowa | 64-bitowy, podpisany |
Mapa | według kluczy, a potem według wartości | Reprezentuje obiekt umieszczony w dokumencie. Po zindeksowaniu możesz wysyłać zapytania o pola podrzędne. Jeśli wykluczysz tę wartość z indeksowania, wszystkie pola podrzędne też zostaną wykluczone z indeksowania.
Kolejność kluczy jest zawsze sortowana. Jeśli na przykład wpiszesz Pola mapowania są sortowane według klucza i porównywane według par klucz-wartość, najpierw porównując klucze, a potem wartości. Jeśli pierwsze pary klucz-wartość są równe, porównywane są kolejne pary klucz-wartość i tak dalej. Jeśli 2 mapy zawierają wszystkie takie same pary klucz-wartość, brana jest pod uwagę długość mapy. Na przykład te mapy są uporządkowane rosnąco:
|
NaN | Brak | – |
Null | Brak | – |
Dokumentacja | Według elementów ścieżki (kolekcja, identyfikator dokumentu, kolekcja, identyfikator dokumentu...) | Przykład: projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH] . |
Ciąg tekstowy | Kolejność bajtów zakodowana w UTF-8 | Maks. 1 048 487 bajtów (1 MiB–89 bajtów). Zapytania uwzględniają tylko pierwsze 1500 bajtów reprezentacji UTF-8. |
Wektor | Według wymiaru, a następnie według poszczególnych wartości elementów | Maksymalny obsługiwany wymiar wektora dystrybucyjnego to 2048. Aby przechowywać wektory o większych wymiarach, użyj redukcji wymiarów. |
Sortowanie typów wartości
Gdy zapytanie obejmuje pole z wartościami różnych typów, Cloud Firestore stosuje deterministyczne sortowanie na podstawie wewnętrznych reprezentacji. Oto ich kolejność:
- Wartości null
- Wartości logiczne
- Wartości NaN
- Wartości całkowite i zmiennoprzecinkowe posortowane w kolejności liczbowej
- Wartości dat
- Wartości ciągu tekstowego
- Wartości w bajtach
- Dokumentacja Cloud Firestore
- Geograficzne wartości punktowe
- Wartości tablicy
- Wektory dystrybucyjne wektorów
- Mapuj wartości