Obsługiwane typy danych

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: [1, 2, 3] < [1, 2, 3, 1] < [2]. Tablica [2] ma największą wartość pierwszego elementu. Tablica [1, 2, 3] ma elementy równe pierwszym 3 elementom tablicy [1, 2, 3, 1], ale jest krótsza.

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 {c: "foo", a: "bar", b: "qux"}, mapa zostanie posortowana według klucza i zapisana jako {a: "bar", b: "qux", c: "foo"}.

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:

{a: "aaa", b: "baz"}
{a: "foo", b: "bar"}
{a: "foo", b: "bar", c: "qux"}
{a: "foo", b: "baz"}
{b: "aaa", c: "baz"}
{c: "aaa"}

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ść:

  1. Wartości null
  2. Minimalne wartości kluczy (tylko wersja Enterprise)
  3. Wartości logiczne
  4. 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.
  5. Wartości daty
  6. Wartości ciągów tekstowych
  7. Wartości bajtów. W wersji Enterprise uwzględniane są też bajty z wartościami podtypów.
  8. Cloud Firestore odniesienie
  9. Wartości ObjectId (tylko wersja Enterprise)
  10. Wartości punktów geograficznych
  11. Wyrażenie regularne (tylko w wersji Enterprise)
  12. Wartości tablicy
  13. Wektory dystrybucyjne
  14. Wartości mapy
  15. 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.