Na tej stronie opisujemy typy danych obsługiwane przez Cloud Firestore.
Typy danych
Tabela poniżej zawiera listę typów danych obsługiwanych przez Cloud Firestore. Opisuje ona też kolejność sortowania stosowaną podczas porównywania wartości tego samego typu:
Typ danych | Kolejność sortowania | Uwagi |
---|---|---|
Tablica | Według wartości elementów |
Tablica nie może zawierać jako jednego ze swoich elementów innej wartości tablicy. Elementy w tablicy zachowują przypisaną pozycję. Podczas sortowania 2 lub więcej tablic tablice są uporządkowane według wartości elementów.
Porównując 2 tablice, porównywane są ich pierwsze elementy. Jeśli pierwsze elementy są równe, porównywane są elementy drugie i tak dalej, aż zostanie znaleziona różnica. Jeśli tablica kończy się na elementach, które mają być porównane, ale do tego momentu są równe, krótsza tablica jest uporządkowana przed dłuższą tablicą. Na przykład: |
Wartość logiczna | false < true |
– |
Bajty | kolejność bajtów, | Maksymalnie 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 narzędziu Cloud Firestore dokładne dane są podawane z dokładnością tylko do mikrosekund. Dodatkowa precyzja jest zaokrąglana w dół. |
Liczba zmiennoprzecinkowa | Wartość liczbowa | 64-bitowa podwójna precyzja, IEEE 754. |
Punkt geograficzny | Według szerokości, a następnie długości geograficznej | Obecnie nie zalecamy używania tego typu danych ze względu na ograniczenia dotyczące zapytań. Długość i szerokość geograficzna lepiej jest zapisywać jako osobne pola liczbowe. Jeśli Twoja aplikacja potrzebuje prostych zapytań geograficznych na podstawie odległości, zapoznaj się z artykułem Zapytania geograficzne. |
Liczba całkowita | Wartość liczbowa | 64-bitowy, podpisany |
Mapa | Według kluczy, a potem według wartości | Reprezentuje obiekt osadzony w dokumencie. Po zindeksowaniu możesz wysyłać zapytania dotyczące podpól. Jeśli wykluczysz tę wartość z indeksowania, wszystkie pola podrzędne również zostaną wykluczone z indeksowania.
Kolejność kluczy jest zawsze sortowana. Jeśli na przykład wpiszesz Pola mapy są sortowane według klucza i porównywane za pomocą 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ść itd. Jeśli 2 mapy mają te same pary klucz-wartość, brana jest pod uwagę długość mapy. Na przykład te mapy są posortowane w kolejności rosnącej:
|
NaN | Brak | – |
Null | Brak | – |
Źródła wiedzy | Według elementów ścieżki (kolekcja, identyfikator dokumentu, kolekcja, identyfikator dokumentu itd.) | Na przykład: projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH] . |
Ciąg tekstowy | kolejność bajtów kodowania UTF-8. | Maksymalnie 1 048 487 bajtów (1 MiB – 89 bajtów). Zapytania uwzględniają tylko pierwsze 1500 bajtów reprezentacji w formacie UTF-8. |
Wektor | Według wymiaru, a następnie według poszczególnych wartości elementów | Maksymalna obsługiwana liczba wymiarów wektorów to 2048. Aby przechowywać wektory o większych wymiarach, użyj redukcji wymiarów. |
Uporządkowanie według typu wartości
Jeśli zapytanie dotyczy pola z wartościami różnych typów, Cloud Firestore używa deterministycznego sortowania na podstawie wewnętrznych reprezentacji. Oto 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
- Cloud Firestore odwołania
- Wartości punktów geograficznych
- Wartości tablicy
- Wektory dystrybucyjne
- Wartości mapy