Bảng sau đây liệt kê các loại dữ liệu, trình điều khiển và công cụ của bên thứ ba được hỗ trợ cho MongoDB trong Cloud Firestore.
Loại dữ liệu
| Loại BSON | Được hỗ trợ |
|---|---|
| Số nguyên 32 bit | Có |
| Số nguyên 64 bit | Có |
| Hàm TOCOL | Có |
| Dữ liệu nhị phân | Có |
| Boolean | Có |
| Ngày | Có |
| DBPointer | Không |
| Decimal128 | Có |
| Giường đôi | Có |
| JavaScript | Không |
| JavaScript (có phạm vi) | Không |
| MaxKey | Có |
| MinKey | Có |
| Null | Có |
| Đối tượng | Có |
| ObjectId | Có |
| Cụm từ thông dụng | Có |
| Chuỗi | Có |
| Biểu tượng | Không |
| Dấu thời gian | Có |
| Không xác định | Không |
Tài liệu _id
Trường _id cấp cao nhất trong tài liệu phải thuộc một trong các loại sau:
- ObjectId
- Chuỗi
- Số nguyên 64 bit
- Số nguyên 32 bit
- Giường đôi
- Tệp nhị phân
- Đối tượng
- Boolean
Tổng kích thước của _id không được vượt quá 1.500 byte.
Mỗi giá trị trong một mã nhận dạng thuộc loại Đối tượng cũng phải thuộc loại mã nhận dạng được hỗ trợ hoặc một Mảng giá trị, trong đó mỗi giá trị thuộc loại mã nhận dạng được hỗ trợ.
Các loại BSON khác không được hỗ trợ.
Ngôn ngữ và trình điều khiển MongoDB
Cloud Firestore hỗ trợ các phiên bản trình điều khiển sau:
| Ngôn ngữ | Phiên bản trình điều khiển |
|---|---|
| Java | 5.x |
| Node.js | 6.x 5.x |
| Python | 4.x 3.x (x ≥ 12) |
| Bắt đầu | 2.x |
| C# | 3.x |
| Ruby | 2.x (x ≥ 16) |
Hỗ trợ xác thực OIDC
Trình điều khiển Go, C# và Ruby hỗ trợ xác thực OpenID Connect (OIDC) từ Google Cloud cho tất cả các phiên bản trình điều khiển được hỗ trợ.
Trình điều khiển Java, Node.js và Python hỗ trợ phương thức xác thực OIDC từ Google Cloud, bắt đầu từ các phiên bản trình điều khiển sau:
- Java: 4.10
- Node.js: 6.7
- Python: 4,7
Các công cụ của bên thứ ba
Cloud Firestore hỗ trợ các công cụ của bên thứ ba được mô tả trong phần này.
| Công cụ | Nội dung mô tả | Ghi chú |
|---|---|---|
| mongoimport | Công cụ cơ sở dữ liệu MongoDB | Xem phần Tải dữ liệu hàng loạt |
| mongoexport | Công cụ cơ sở dữ liệu MongoDB | |
| mongodump | Công cụ cơ sở dữ liệu MongoDB | |
| mongorestore | Công cụ cơ sở dữ liệu MongoDB | Xem phần Tải dữ liệu hàng loạt |
| mongosh | MongoDB Shell | |
| Mongoose | Công cụ lập mô hình đối tượng MongoDB | |
| MongoDB Compass | Công cụ GUI để khám phá dữ liệu |
Khả năng tương thích của loại BSON và Cloud Firestore
Phần này tóm tắt mối liên kết giữa các loại BSON MongoDB và giá trị Cloud Firestore. Vì BSON là định dạng nhị phân và API Cloud Firestore sử dụng Vùng đệm giao thức, nên một số loại sẽ liên kết trực tiếp, trong khi một số loại khác yêu cầu biểu diễn liên kết đặc biệt.
Tổng quan về mối liên kết
Các bảng sau đây cho biết cách các kiểu dữ liệu BSON tương ứng với các bản trình bày vùng đệm giao thức Cloud Firestore.
Liên kết trực tiếp
Các loại này có giá trị tương đương trực tiếp trong cả hai hệ thống.
| Loại BSON | BSON | Cloud Firestore Proto | Ghi chú |
|---|---|---|---|
| Double | 1.23 |
double_value: 1.23 |
|
| String | "hello" |
string_value: "hello" |
|
| Đối tượng | { |
map_value { |
|
| Mảng | [ |
array_value { |
|
| Nhị phân (Loại phụ 0) | BinData(0, 'SGVsbG8=') |
bytes_value: "Hello" |
|
| Boolean | true |
boolean_value: true |
|
| Null | null |
null_value: NULL_VALUE |
|
| Số nguyên 64 bit | Long('1234567890') |
integer_value: 1234567890 |
|
| Ngày | ISODate('2026-05-22T04:00:00Z') |
timestamp_value { |
Giá trị dấu thời gian Cloud Firestore được lưu trữ ở độ chính xác đến micrô giây, nhưng mọi giá trị vượt quá độ chính xác đến mili giây đều bị mất khi chuyển đổi sang BSON. |
Các loại BSON được biểu thị dưới dạng bản đồ trong API Cloud Firestore
Các loại BSON này được gói trong Cloud Firestore map_value bằng các khoá đặc biệt để biểu thị loại.
| Loại BSON | BSON | Cloud Firestore Proto | Ghi chú |
|---|---|---|---|
| Số nguyên 32 bit | 123 |
map_value { |
|
| Nhị phân (Loại phụ khác 0) | BinData(1, 'AQIDBA==') |
map_value { |
Byte loại phụ được thêm vào trước dữ liệu. |
| ObjectId | ObjectId('67eea9446dc71ec469e9496a') |
map_value { |
Chuỗi thập lục phân viết thường. |
| Dấu thời gian (Nội bộ) | Timestamp(123, 1) |
map_value { |
Dấu thời gian nội bộ của MongoDB. |
| Biểu thức chính quy | RegExp('.*', 'im') |
map_value { |
|
| Khoá tối thiểu | MinKey() |
map_value { |
|
| Khoá tối đa | MaxKey() |
map_value { |
|
| Decimal128 | Decimal128('4E7') |
map_value { |
Cloud Firestore loại không có sẵn trong BSON
Các loại Cloud Firestore này được biểu thị dưới dạng bản đồ có cấu trúc đặc biệt khi được chuyển đổi thành BSON.
| Loại Cloud Firestore | BSON | Cloud Firestore Proto |
|---|---|---|
| GeoPoint | { |
geo_point_value { |
| Vector | { |
map_value { |
| Tham chiếu tài liệu | { |
reference_value: "projects/.../documents/col/doc" |
Tên trường
Tên trường từ MongoDB khớp với __.*__ sẽ được thoát bằng cách kết hợp r: khi lưu trữ trong Cloud Firestore. Ví dụ: trường BSON __foo__ trở thành __r:foo__ trong Cloud Firestore.
Các loại dữ liệu BSON trong SDK ứng dụng
Khi sử dụng SDK ứng dụng Cloud Firestore, bạn có thể dùng các lớp SDK chuyên biệt để biểu thị các loại dữ liệu BSON như số thập phân 128 bit, biểu thức chính quy và dấu thời gian BSON.
Node.js
const { RegexValue, Decimal128Value, BsonTimestamp } = require('@google-cloud/firestore'); // Setting fields with BSON data types const res = await db.collection('foo').doc('bar').set({ regex: new RegexValue('myRegexPattern', 'i'), decimal: new Decimal128Value('0.73e-7'), bsonTimestamp: new BsonTimestamp(1732754912, 500), });
Java
import com.google.cloud.firestore.BsonTimestamp; import com.google.cloud.firestore.Decimal128Value; import com.google.cloud.firestore.RegexValue; import java.util.HashMap; import java.util.Map; Map<String, Object> data = new HashMap<>(); data.put("regex", new RegexValue("myRegexPattern", "i")); data.put("decimal", new Decimal128Value("0.73e-7")); data.put("bson_timestamp", new BsonTimestamp(1732754912, 500)); db.collection("foo").doc("bar").set(data);
Java
import com.google.firebase.firestore.BsonTimestamp; import com.google.firebase.firestore.Decimal128Value; import com.google.firebase.firestore.RegexValue; import java.util.HashMap; import java.util.Map; Map<String, Object> data = new HashMap<>(); data.put("regex", new RegexValue("myRegexPattern", "i")); data.put("decimal", new Decimal128Value("0.73e-7")); data.put("bson_timestamp", new BsonTimestamp(1732754912, 500)); db.collection("foo").doc("bar").set(data);
Bắt đầu
import ( "context" "cloud.google.com/go/firestore" ) func writeBsonTypes(ctx context.Context, client *firestore.Client) error { _, err := client.Collection("foo").Doc("bar").Set(ctx, map[string]interface{}{ "regex": firestore.RegexValue{Pattern: "myRegexPattern", Options: "i"}, "decimal": firestore.Decimal128Value{Value: "0.73e-7"}, "bson_timestamp": firestore.BsonTimestamp{Seconds: 1732754912, Increment: 500}, }) return err }
Bước tiếp theo
- Chạy Bắt đầu nhanh: Tạo cơ sở dữ liệu và kết nối với cơ sở dữ liệu đó.
- Tìm hiểu về Sự khác biệt về hành vi.
- Để xem thông tin chi tiết về các tính năng được hỗ trợ tuỳ theo phiên bản MongoDB, hãy xem