Na tej stronie opisano typy danych obsługiwane przez Cloud Firestore.
Typy danych
Tabela poniżej zawiera listę typów danych obsługiwanych przez Cloud Firestore. Zawiera ona też opis kolejności sortowania używanej 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 wyczerpie elementy do porównania, ale do tego momentu jest równa, 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 pierwszych 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 | Ze względu na ograniczenia dotyczące zapytań nie zalecamy obecnie używania tego typu danych. 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 po kluczach, a potem po wartościach. 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ść, bierze się 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 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 o różnych typach, Cloud Firestore używa deterministycznego sortowania na podstawie wewnętrznych reprezentacji. Kolejność jest następująca:
- 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
- Mapowanie wartości