Chỉ áp dụng cho phiên bản Cloud Firestore Enterprise. |
Trang này mô tả những điểm khác biệt về hành vi giữa Cloud Firestore có khả năng tương thích với MongoDB và MongoDB.
Để biết thông tin chi tiết về các tính năng được hỗ trợ tuỳ thuộc vào phiên bản MongoDB, hãy xem:
- Các tính năng được hỗ trợ: 8.0
- Các tính năng được hỗ trợ: 7.0
- Các tính năng được hỗ trợ: 6.0
- Các tính năng được hỗ trợ: 5.0
Kết nối và cơ sở dữ liệu
- Mỗi kết nối chỉ được giới hạn ở một Cloud Firestore có cơ sở dữ liệu tương thích với MongoDB.
- Bạn phải tạo cơ sở dữ liệu trước khi kết nối với cơ sở dữ liệu đó.
Đặt tên
Những điểm khác biệt sau đây áp dụng cho việc đặt tên các phần trong mô hình dữ liệu.
Bộ sưu tập
- Tên bộ sưu tập khớp với
__.*__
không được hỗ trợ.
Trường
- Tên trường khớp với
__.*__
không được hỗ trợ. - Không hỗ trợ tên trường trống.
Tài liệu
- Kích thước tối đa của tài liệu là 4 MiB.
- Độ sâu lồng ghép tối đa của các trường là 20. Mỗi trường có kiểu Array và Object sẽ thêm một cấp vào độ sâu tổng thể.
_id
- Tài liệu
_id
(trường cấp cao nhất) phải là ObjectId, String hoặc số nguyên 64 bit. Các loại BSON khác không được hỗ trợ. - Không hỗ trợ chuỗi trống ("") và 0 (0L) 64 bit.
Giá trị
- Các loại JavaScript, Symbol, DBPointer và Undefined BSON không được hỗ trợ.
Ngày
- Giá trị ngày phải nằm trong
[0001-01-01T00:00:00Z, 9999-12-31T23:59:59Z]
.
Decimal128
NaN
, giá trị vô cực dương và vô cực âm được chuẩn hoá khi ghi.- Không hỗ trợ các phép toán số học trên Decimal128.
Giường đôi
- Các giá trị
NaN
được chuẩn hoá khi ghi.
Cụm từ thông dụng
- Các lựa chọn biểu thức chính quy phải hợp lệ ("i", "m", "s", "u" hoặc "x") và được cung cấp theo thứ tự bảng chữ cái mà không có nội dung lặp lại.
Cụm từ tìm kiếm
- Thứ tự sắp xếp tự nhiên (các truy vấn không có tiêu chí sắp xếp rõ ràng) không khớp với thứ tự chèn hoặc thứ tự sắp xếp theo
_id
tăng dần.
Tổng hợp
- Số lượng giai đoạn tổng hợp tối đa là 250.
- Không hỗ trợ các giai đoạn
$merge
và$out
. Hãy xem phần lệnh để biết danh sách đầy đủ các giai đoạn và toán tử được hỗ trợ. - Giai đoạn
$lookup
chỉ giới hạn ở việc chỉ định mộtforeignField
trên_id
.
Hoạt động ghi
- Bạn không thể tạo tài liệu có tên bắt đầu bằng dấu đô la ("$") bằng tính năng chèn và cập nhật của
update
hoặcfindAndModify
. - Đảm bảo chuỗi kết nối của bạn bao gồm
retryWrites=false
(hoặc sử dụng phương thức phù hợp với trình điều khiển của bạn) để đảm bảo trình điều khiển không cố gắng sử dụng tính năng này. Không hỗ trợ các thao tác ghi có thể thử lại.
Giao dịch
Có hỗ trợ cô lập ảnh chụp nhanh và giao dịch có thể chuyển đổi tuần tự.
Theo mặc định, các giao dịch sử dụng cơ chế kiểm soát đồng thời lạc quan với tính năng cách ly ảnh chụp nhanh.
Đọc dữ liệu về mối lo ngại
Cloud Firestore có khả năng tương thích với MongoDB và hỗ trợ các mối lo ngại về việc đọc
snapshot
,majority
vàlinearizable
. Giá trị mặc định làsnapshot
, đề cập đến tính năng cách ly ảnh chụp nhanh.Sử dụng
linearizable
khi ứng dụng yêu cầu tính nhất quán nghiêm ngặt và phải ngăn chặn các điểm bất thường về độ lệch ghi. Đối với các khối lượng công việc khác,snapshot
có thể cải thiện hiệu suất và giảm tình trạng tranh chấp giao dịch.
Mối lo ngại về việc ghi
- Chỉ hỗ trợ các mối lo ngại khi ghi
w: 'majority'
vàw: 1
.
Lựa chọn ưu tiên khi đọc
- Chỉ các mối lo ngại khi đọc
primary
,primaryPreferred
,primary_preferred
,secondary_preferred
vànearest
được hỗ trợ.
Chỉ số
- Không hỗ trợ chỉ mục có ký tự đại diện.
- Cloud Firestore có khả năng tương thích với MongoDB không tự động tạo chỉ mục trên
_id
, nhưng đảm bảo các giá trị của_id
là duy nhất trong một tập hợp. - Các chỉ mục không bật nhiều khoá sẽ không tự động thay đổi thành chỉ mục nhiều khoá dựa trên các thao tác ghi. Bạn phải bật nhiều khoá khi tạo chỉ mục và không thể thay đổi lựa chọn này.
Lỗi
- Mã lỗi và thông báo lỗi có thể khác nhau giữa Cloud Firestore có khả năng tương thích với MongoDB và MongoDB.
Lệnh
Những điểm khác biệt sau đây về hành vi áp dụng cho các lệnh cụ thể.
- Các lệnh không có trong các bảng sau đây sẽ không được hỗ trợ.
- Hầu hết các lệnh đều chấp nhận
maxTimeMS
nhưng có thể bỏ qua.
Truy vấn và hoạt động ghi
Lệnh | Các trường không được hỗ trợ |
---|---|
|
|
|
|
|
|
|
|
|
Trong câu lệnh xoá:
|
|
|
|
|
|
|
|
|
|
(không có) |
Giao dịch và phiên hoạt động
Lệnh | Các trường không được hỗ trợ |
---|---|
|
|
|
|
|
(không có) |
Quản trị
Lệnh | Các trường không được hỗ trợ | Ghi chú |
---|---|---|
|
|
filter phải để trống nếu bạn cung cấp. |
|
|
authorizedCollections phải là false nếu được cung cấp. |
|
|
|
|
|
Lệnh này không có tác dụng.capped phải là false nếu được cung cấp. |
Bước tiếp theo
- Chạy Hướng dẫn nhanh: Tạo cơ sở dữ liệu và kết nối với cơ sở dữ liệu đó.
- Để xem danh sách đầy đủ các tính năng được hỗ trợ, hãy xem bài viết Các loại dữ liệu, trình điều khiển và tính năng được hỗ trợ của MongoDB.