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 |
|---|---|---|
| 32-bitowa liczba całkowita | Dane liczbowe |
32-bitowy, ze znakiem Uwaga: ta funkcja jest obsługiwana tylko w wersji Enterprise. |
| 64-bitowa liczba całkowita | Dane liczbowe | 64-bitowa, ze znakiem |
| 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: |
| Wartość logiczna | false < true |
– |
| sygnatura czasowa BSON, | Chronologicznie |
64-bitowa wartość sygnatury czasowej obejmująca sekundy uniksowe i licznik przyrostu. Uwaga: ta funkcja jest obsługiwana tylko w wersji Enterprise. |
| 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ść. |
| Bajty z podtypem | Kolejność bajtów (podtyp, a potem wartość) |
Binarna sekwencja bajtów ze wskaźnikiem podtypu BSON. Uwaga: ta funkcja jest obsługiwana tylko w wersji Enterprise. |
| Data i godzina | Chronologicznie | W przypadku przechowywania w Cloud Firestore dokładność jest ograniczona do mikrosekund. Dodatkowa precyzja jest zaokrąglana w dół. |
| Decimal128 | Dane liczbowe |
128-bitowa liczba zmiennoprzecinkowa o wysokiej precyzji. Uwaga: ta funkcja jest obsługiwana tylko w wersji Enterprise. |
| 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. |
| 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 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ść, aż do znalezienia różnicy. 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:
|
| Tryb maksymalny | Brak |
Wartość specjalna, która jest wyższa niż wszystkie inne wartości. Uwaga: ta funkcja jest obsługiwana tylko w wersji Enterprise. |
| Klucz minimalny | Brak |
Wartość specjalna, która jest mniejsza niż wszystkie inne wartości (z wyjątkiem wartości null). Uwaga: ta funkcja jest obsługiwana tylko w wersji Enterprise. |
| Null | Brak | – |
| ObjectId | Kolejność bajtów |
12-bajtowy identyfikator obiektu. Uwaga: ta funkcja jest obsługiwana tylko w wersji Enterprise. |
| Ź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]. |
| Wyrażenie regularne | Według wzorca, a następnie według opcji |
Wzorzec wyrażenia regularnego i opcje. Uwaga: ta funkcja jest obsługiwana tylko w wersji Enterprise. |
| 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ść:
- Wartości null
- Minimalne wartości kluczy (tylko wersja Enterprise)
- Wartości logiczne
- 64-bitowe liczby całkowite i wartości zmiennoprzecinkowe posortowane w kolejności numerycznej. W bazach danych w wersji Enterprise uwzględniane są też 32-bitowe liczby całkowite i wartości Decimal128.
- Wartości daty
- Wartości ciągów tekstowych
- Wartości bajtów. W wersji Enterprise uwzględniane są też bajty z wartościami podtypów.
- Cloud Firestore odniesienie
- Wartości ObjectId (tylko wersja Enterprise)
- Wartości punktów geograficznych
- Wyrażenie regularne (tylko w wersji Enterprise)
- Wartości tablicy
- Wektory dystrybucyjne
- Wartości mapy
- Maksymalna liczba par klucz-wartość (tylko w wersji Enterprise)
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.