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 co najmniej 2 tablic są one 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 | Gdy jest przechowywany w formacie Cloud Firestore, ma dokładność do mikrosekund; większa dokładność jest zaokrąglana w dół. |
Liczba zmiennoprzecinkowa | Wartość liczbowa | 64-bitowa podwójna precyzja, IEEE 754. |
Punkt geograficzny | Według szerokości geograficznej, a potem długości | Obecnie nie zalecamy używania tego typu danych ze względu na ograniczenia dotyczące zapytań. Zwykle lepiej jest przechowywać szerokość i długość geograficzną 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 pól podrzędnych. Jeśli wykluczysz tę wartość z indeksowania, wszystkie pola podrzędne również zostaną wykluczone z indeksowania.
Klucze są zawsze sortowane. 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 zakodowana w 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 potem według wartości poszczególnych 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 zmiennopozycyjne posortowane w kolejności rosnącej,
- wartości daty,
- Wartości ciągu tekstowego
- Wartości bajtów
- Cloud Firestore pliku referencyjnego
- Wartości punktów geograficznych
- Wartości tablicy
- Wektory dystrybucyjne
- Wartości mapy