Các loại dữ liệu được hỗ trợ

Trang này mô tả các loại dữ liệu mà Cloud Firestore hỗ trợ.

Loại dữ liệu

Bảng sau đây liệt kê các loại dữ liệu mà Cloud Firestore hỗ trợ. Phần này cũng mô tả thứ tự sắp xếp được dùng khi so sánh các giá trị cùng loại:

Loại dữ liệu Thứ tự sắp xếp Ghi chú
Mảng Theo giá trị phần tử

Trong cơ sở dữ liệu phiên bản Chuẩn, một mảng không thể chứa một giá trị mảng khác làm một trong các phần tử của nó. Trong cơ sở dữ liệu phiên bản dành cho doanh nghiệp, một mảng có thể chứa giá trị mảng làm một trong các phần tử của mảng đó.

Trong một mảng, các phần tử duy trì vị trí được chỉ định cho chúng. Khi sắp xếp hai mảng trở lên, các mảng sẽ được sắp xếp theo giá trị phần tử của chúng.

Khi so sánh hai mảng, các phần tử đầu tiên của mỗi mảng sẽ được so sánh. Nếu các phần tử đầu tiên bằng nhau, thì các phần tử thứ hai sẽ được so sánh, v.v. cho đến khi tìm thấy sự khác biệt. Nếu một mảng hết phần tử để so sánh nhưng bằng nhau cho đến thời điểm đó, thì mảng ngắn hơn sẽ được sắp xếp trước mảng dài hơn.

Ví dụ: [1, 2, 3] < [1, 2, 3, 1] < [2]. Mảng [2] có giá trị phần tử đầu tiên lớn nhất. Mảng [1, 2, 3] có các phần tử bằng với 3 phần tử đầu tiên của [1, 2, 3, 1] nhưng có độ dài ngắn hơn.

Boolean false < true
Byte Thứ tự byte Trong cơ sở dữ liệu phiên bản Chuẩn, giá trị không được vượt quá 1.048.487 byte (1 MiB – 89 byte) và chỉ có 1.500 byte đầu tiên được truy vấn xem xét. Trong cơ sở dữ liệu phiên bản Enterprise, không có giới hạn về kích thước của giá trị (ngoài giới hạn kích thước của mục nhập tài liệu và chỉ mục) và toàn bộ giá trị được truy vấn xem xét.
Ngày và giờ Theo trình tự thời gian Khi được lưu trữ trong Cloud Firestore, chỉ chính xác đến từng phần triệu giây; mọi độ chính xác bổ sung đều được làm tròn xuống.
Số dấu phẩy động Số Độ chính xác gấp đôi 64 bit theo IEEE 754, bao gồm cả NaN+/-Infinity (được chuẩn hoá).
Điểm địa lý Theo vĩ độ, sau đó theo kinh độ Để tìm kiếm dựa trên khoảng cách, hãy xem phần Tìm kiếm không gian địa lý.
Số nguyên Số 64 bit, đã ký
Bản đồ Theo khoá, sau đó theo giá trị

Đại diện cho một đối tượng được nhúng trong tài liệu. Khi được lập chỉ mục, bạn có thể truy vấn trên các trường con. Nếu bạn loại trừ giá trị này khỏi việc lập chỉ mục, thì tất cả các trường con cũng sẽ bị loại trừ khỏi việc lập chỉ mục.

Thứ tự khoá luôn được sắp xếp. Ví dụ: nếu bạn viết {c: "foo", a: "bar", b: "qux"}, bản đồ sẽ được sắp xếp theo khoá và lưu dưới dạng {a: "bar", b: "qux", c: "foo"}.

Các trường ánh xạ được sắp xếp theo khoá và so sánh theo cặp khoá-giá trị, trước tiên là so sánh các khoá rồi sau đó là các giá trị. Nếu các cặp khoá-giá trị đầu tiên bằng nhau, thì các cặp khoá-giá trị tiếp theo sẽ được so sánh, v.v. Nếu hai bản đồ có tất cả các cặp khoá-giá trị giống nhau, thì độ dài bản đồ sẽ được xem xét. Ví dụ: các bản đồ sau đây được sắp xếp theo thứ tự tăng dần:

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

Null Không có
Tài liệu tham khảo Theo các phần tử đường dẫn (bộ sưu tập, mã nhận dạng tài liệu, bộ sưu tập, mã nhận dạng tài liệu...) Ví dụ: projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH].
Chuỗi văn bản Thứ tự byte được mã hoá theo UTF-8 Trong cơ sở dữ liệu phiên bản Chuẩn, giá trị không được vượt quá 1.048.487 byte (1 MiB – 89 byte) và chỉ 1.500 byte đầu tiên được truy vấn xem xét. Trong cơ sở dữ liệu phiên bản Enterprise, không có giới hạn về kích thước của giá trị (ngoài giới hạn kích thước của mục nhập tài liệu và chỉ mục) và toàn bộ giá trị được truy vấn xem xét.
Vectơ Theo phương diện, sau đó theo giá trị của từng phần tử Kích thước nhúng tối đa được hỗ trợ là 2048. Để lưu trữ các vectơ có kích thước lớn hơn, hãy sử dụng giảm chiều.

Sắp xếp theo loại giá trị

Khi một truy vấn liên quan đến một trường có các giá trị thuộc nhiều loại, Cloud Firestore sẽ sử dụng một thứ tự xác định dựa trên các biểu thị nội bộ. Danh sách sau đây cho thấy thứ tự:

  1. Giá trị rỗng
  2. Giá trị Boolean
  3. Giá trị số nguyên và dấu phẩy động, được sắp xếp theo thứ tự số
  4. Giá trị ngày
  5. Giá trị chuỗi văn bản
  6. Giá trị byte
  7. Cloud Firestore tài liệu tham khảo
  8. Giá trị điểm địa lý
  9. Giá trị mảng
  10. Vectơ nhúng
  11. Giá trị bản đồ

Sắp xếp theo thứ tự số

Cloud Firestore sắp xếp tất cả các giá trị bằng số (IntegerFloating point) xen kẽ với nhau. Việc so sánh dấu phẩy động tuân theo thứ tự tổng thể của IEEE 754, ngoại trừ trường hợp đáng chú ý là Cloud Firestore chuẩn hoá tất cả các giá trị NaN và coi giá trị này nhỏ hơn -Infinity.