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 được Cloud Firestore hỗ trợ. Bảng 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ú
Số nguyên 32 bit Số

32 bit, có dấu

Lưu ý: Chỉ được hỗ trợ trong phiên bản Enterprise.

Số nguyên 64 bit Số 64 bit, đã ký
Hàm TOCOL Theo giá trị phần tử

Trong cơ sở dữ liệu phiên bản Standard, một mảng không được chứa một giá trị mảng khác dưới dạng một trong các phần tử của mảng đó. Trong cơ sở dữ liệu phiên bản Enterprise, một mảng có thể chứa giá trị mảng dưới dạng 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 hoặc nhiều mảng, các mảng được sắp xếp dựa trên 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, tiếp tục 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 ba phần tử đầu tiên của [1, 2, 3, 1] nhưng có độ dài ngắn hơn.

Boolean false < true —
Dấu thời gian BSON Theo trình tự thời gian

Giá trị dấu thời gian 64 bit bao gồm giây Unix và bộ đếm gia tăng.

Lưu ý: Chỉ được hỗ trợ trong phiên bản Enterprise.

Byte Thứ tự byte Trong cơ sở dữ liệu phiên bản Standard, giá trị không được vượt quá 1.048.487 byte (1 MiB – 89 byte) và các truy vấn chỉ xem xét 1.500 byte đầu tiên. 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 mục nhập chỉ mục và tài liệu) và toàn bộ giá trị được các truy vấn xem xét.
Byte có loại phụ Thứ tự byte (loại phụ, sau đó là giá trị)

Chuỗi byte nhị phân có chỉ báo loại phụ BSON.

Lưu ý: Chỉ được hỗ trợ trong phiên bản Enterprise.

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 micro giây; mọi độ chính xác bổ sung đều được làm tròn xuống.
Decimal128 Số

Số dấu phẩy động thập phân 128 bit cho phép tính số học có độ chính xác cao.

Lưu ý: Chỉ được hỗ trợ trong phiên bản Enterprise.

Số dấu phẩy động Số Độ chính xác kép 64 bit theo IEEE 754, bao gồm cả NaN và +/-Infinity (đã 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ý.
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 phụ 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 bản đồ được sắp xếp theo khoá và so sánh theo cặp khoá-giá trị, trước tiên so sánh các khoá rồi đến 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, tiếp tục cho đến khi tìm thấy sự khác biệt. 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"}

Khoá tối đa Không có

Giá trị đặc biệt có thứ tự cao hơn tất cả các giá trị khác.

Lưu ý: Chỉ được hỗ trợ trong phiên bản Enterprise.

Khoá tối thiểu Không có

Giá trị đặc biệt có kết quả so sánh thấp hơn tất cả các giá trị khác (ngoại trừ giá trị rỗng).

Lưu ý: Chỉ được hỗ trợ trong phiên bản Enterprise.

Null Không có —
ObjectId Thứ tự byte

Giá trị nhận dạng đối tượng 12 byte.

Lưu ý: Chỉ được hỗ trợ trong phiên bản Enterprise.

Tài liệu tham khảo Theo các phần tử đường dẫn (bộ sưu tập, mã tài liệu, bộ sưu tập, mã tài liệu...) Ví dụ: projects/[PROJECT_ID]/databases/[DATABASE_ID]/documents/[DOCUMENT_PATH].
Biểu thức chính quy Theo mẫu, sau đó theo lựa chọn

Một mẫu biểu thức chính quy và các tuỳ chọn.

Lưu ý: Chỉ được hỗ trợ trong phiên bản Enterprise.

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 Standard, giá trị không được vượt quá 1.048.487 byte (1 MiB – 89 byte) và các truy vấn chỉ xem xét 1.500 byte đầu tiên. 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 mục nhập chỉ mục và tài liệu) và toàn bộ giá trị được cá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ữ vectơ có kích thước lớn hơn, hãy sử dụng tính năng giảm kích thước.

Thứ tự 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 thứ tự tất định dựa trên các giá trị đại diện nội bộ. Danh sách sau đây cho thấy thứ tự:

  1. Giá trị rỗng
  2. Giá trị khoá tối thiểu (chỉ dành cho phiên bản Enterprise)
  3. Giá trị Boolean
  4. Giá trị số nguyên và dấu phẩy động 64 bit, được sắp xếp theo thứ tự số. Trong cơ sở dữ liệu của phiên bản Enterprise, các giá trị số nguyên 32 bit và Decimal128 cũng được đưa vào.
  5. Giá trị ngày
  6. Giá trị chuỗi văn bản
  7. Giá trị byte. Trong phiên bản Enterprise, các byte có giá trị loại phụ cũng được đưa vào.
  8. Cloud Firestore tệp đối chiếu
  9. Giá trị ObjectId (chỉ dành cho phiên bản Enterprise)
  10. Giá trị điểm địa lý
  11. Biểu thức chính quy (chỉ dành cho phiên bản Enterprise)
  12. Giá trị mảng
  13. Vectơ nhúng
  14. Giá trị bản đồ
  15. Giá trị khoá tối đa (chỉ dành cho phiên bản Enterprise)

Sắp xếp theo số

Cloud Firestore sắp xếp tất cả giá trị số (Integer và Floating point) xen kẽ với nhau. Phép 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ả giá trị NaN và coi giá trị đó nhỏ hơn -Infinity.