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, podpisana
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 są one równe, 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 w indeksie), a zapytania uwzględniają pełną wartość.
Bajty z podtypem Kolejność bajtów (podtyp, a potem wartość)

Sekwencja bajtów binarnych 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 do obliczeń 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 dowiedzieć się, jak wyszukiwać na podstawie odległości, zobacz 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 podpól. 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 {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 według kluczy, a potem według 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 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 w indeksie), 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. Kolejność jest podana na liście poniżej:

  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 odwołanie
  9. Wartości ObjectId (tylko wersja Enterprise)
  10. Wartości punktów geograficznych
  11. Wyrażenie regularne (tylko wersja 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 uporządkowaniem IEEE 754 z istotnym wyjątkiem, że Cloud Firestore normalizuje wszystkie wartości NaN i uznaje je za mniejsze niż -Infinity.