Perbedaan perilaku
Halaman ini menjelaskan perbedaan perilaku antara Firestore dengan kompatibilitas MongoDB dan MongoDB.Untuk mengetahui perincian fitur yang didukung bergantung pada versi MongoDB, lihat:
Koneksi dan database
- Setiap koneksi dibatasi untuk satu Firestore dengan database kompatibilitas MongoDB.
- Database harus dibuat sebelum terhubung ke database tersebut.
Penamaan
Perbedaan berikut berlaku untuk penamaan bagian model data Anda.
Koleksi
- Nama koleksi yang cocok dengan
__.*__
tidak didukung.
Kolom
- Nama kolom yang cocok dengan
__.*__
tidak didukung. - Nama kolom kosong tidak didukung.
Dokumen
- Ukuran dokumen maksimum adalah 4 MiB.
- Kedalaman nesting maksimum kolom adalah 20. Setiap kolom berjenis Array dan Objek menambahkan satu tingkat ke kedalaman keseluruhan.
_id
_id
Dokumen (kolom tingkat teratas) harus berupa ObjectId, String, atau bilangan bulat 64-bit. Jenis BSON lainnya tidak didukung.- String kosong ("") dan 0 64-bit (0L) tidak didukung.
Nilai
- Jenis JavaScript, Symbol, DBPointer, dan Undefined BSON tidak didukung.
Tanggal
- Nilai tanggal harus berada dalam
[0001-01-01T00:00:00Z, 9999-12-31T23:59:59Z]
.
Decimal128
- Nilai
NaN
, tak terbatas positif, dan tak terbatas negatif akan dikanonikasikan saat ditulis. - Operasi aritmetika pada Decimal128 tidak didukung.
Ganda
- Nilai
NaN
dikanonikasikan saat penulisan.
Ekspresi reguler
- Opsi ekspresi reguler harus valid ("i", "m", "s", "u", atau "x") dan diberikan dalam urutan alfabet tanpa pengulangan.
Kueri
- Urutan pengurutan alami (kueri tanpa pengurutan eksplisit) tidak cocok dengan urutan penyisipan atau urutan menurut
_id
menaik.
Agregasi
- Agregasi dibatasi hingga 250 tahap.
- Tahap
$merge
dan$out
tidak didukung. Lihat bagian perintah untuk mengetahui daftar lengkap tahap dan operator yang didukung.
Tulis
- Dokumen dengan nama yang diawali dengan tanda dolar ("$") tidak dapat
dibuat menggunakan fitur upsert
update
ataufindAndModify
. - Pastikan string koneksi Anda
menyertakan
retryWrites=false
(atau gunakan metode yang sesuai dengan driver Anda) untuk memastikan driver tidak mencoba menggunakan fitur ini. Operasi tulis yang dapat dicoba ulang tidak didukung.
Transaksi
- Transaksi snapshot tidak didukung.
- Transaksi menggunakan kontrol serentak pesimis dengan penguncian. Untuk menghindari persaingan kunci, batasi jumlah data yang dibaca dalam transaksi.
Indeks
- Indeks karakter pengganti tidak didukung.
- Indeks unik tidak didukung
- Firestore dengan kompatibilitas MongoDB tidak otomatis membuat indeks di
_id
, tetapi memastikan nilai_id
unik dalam koleksi. - Indeks tanpa multi-kunci yang diaktifkan tidak akan otomatis diubah menjadi indeks multi-kunci berdasarkan operasi tulis. Anda harus mengaktifkan multi-kunci saat membuat indeks dan opsi tersebut tidak dapat diubah.
Membaca masalah
- Hanya tingkat masalah baca
majority
yang didukung.
Menulis masalah
- Hanya masalah tulis
w: 'majority'
danw: 1
yang didukung.
Preferensi baca
- Hanya masalah baca
primary
,primaryPreferred
,primary_preferred
,secondary_preferred
, dannearest
yang didukung.
Error
- Kode dan pesan error dapat berbeda antara Firestore dengan kompatibilitas MongoDB dan MongoDB.
Perintah
Perbedaan perilaku berikut berlaku untuk perintah tertentu.
- Perintah yang tidak tercantum dalam tabel berikut tidak didukung.
maxTimeMS
diterima oleh sebagian besar perintah, tetapi dapat diabaikan.
Kueri dan operasi tulis
Perintah | Kolom yang Tidak Didukung |
---|---|
|
|
|
|
|
|
|
|
|
Dalam pernyataan penghapusan:
|
|
|
|
|
|
|
|
|
|
(tidak ada) |
Transaksi dan sesi
Perintah | Kolom yang Tidak Didukung |
---|---|
|
|
|
|
|
(tidak ada) |
Administrasi
Perintah | Kolom yang Tidak Didukung | Catatan |
---|---|---|
|
|
filter harus kosong jika diberikan. |
|
|
authorizedCollections harus salah jika diberikan. |
|
|
|
|
|
Perintah ini tidak melakukan apa pun.capped harus salah jika diberikan. |
Langkah berikutnya
- Jalankan Panduan memulai: Membuat database dan terhubung ke database tersebut.
- Untuk mengetahui daftar lengkap fitur yang didukung, lihat Jenis data, driver, dan fitur MongoDB yang didukung.