Hanya berlaku untuk edisi Cloud Firestore Enterprise. |
Halaman ini menjelaskan perbedaan perilaku antara Cloud 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 database Cloud Firestore dengan 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 bertingkat maksimum kolom adalah 20. Setiap kolom berjenis Array dan Objek menambahkan satu tingkat ke kedalaman keseluruhan.
_id
- Dokumen
_id
(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 BSON JavaScript, Symbol, DBPointer, dan Undefined tidak didukung.
Tanggal
- Nilai tanggal harus berada dalam rentang
[0001-01-01T00:00:00Z, 9999-12-31T23:59:59Z]
.
Decimal128
- Nilai
NaN
, tak terhingga positif, dan tak terhingga negatif dikanonikalisasi saat operasi tulis. - Operasi aritmatika pada Decimal128 tidak didukung.
Ganda
- Nilai
NaN
dikanonikalisasi saat operasi tulis.
Ekspresi reguler
- Opsi ekspresi reguler harus valid ("i", "m", "s", "u", atau "x") dan diberikan dalam urutan abjad tanpa pengulangan.
Kueri
- Tata urutan alami (kueri tanpa pengurutan eksplisit) tidak cocok dengan urutan penyisipan atau urutan berdasarkan
_id
menaik.
Agregasi
- Agregasi dibatasi hingga 250 tahap.
- Tahap
$merge
dan$out
tidak didukung. Lihat bagian perintah untuk mengetahui daftar lengkap operator dan tahap yang didukung. - Tahap
$lookup
terbatas pada penentuanforeignField
di_id
.
Tulis
- Dokumen dengan nama yang diawali dengan tanda dolar ("$") tidak dapat
dibuat menggunakan fitur upsert
update
ataufindAndModify
. - Pastikan string koneksi Anda
mencakup
retryWrites=false
(atau gunakan metode yang sesuai untuk driver Anda) untuk memastikan driver tidak mencoba menggunakan fitur ini. Operasi tulis yang dapat dicoba lagi tidak didukung.
Transaksi
Snapshot isolation dan transaksi yang dapat diserialisasi didukung.
Secara default, transaksi menggunakan kontrol konkurensi optimis dengan snapshot isolation.
Masalah operasi baca
Cloud Firestore dengan kompatibilitas MongoDB mendukung
snapshot
,majority
, danlinearizable
masalah operasi baca. Defaultnya adalahsnapshot
yang merujuk pada snapshot isolation.Gunakan
linearizable
jika aplikasi memerlukan konsistensi yang ketat dan harus mencegah anomali skew operasi tulis. Untuk workload lain,snapshot
dapat meningkatkan performa dan mengurangi pertentangan transaksi.
Masalah operasi tulis
- Hanya masalah operasi tulis
w: 'majority'
danw: 1
yang didukung.
Preferensi operasi baca
- Hanya masalah operasi baca
primary
,primaryPreferred
,primary_preferred
,secondary_preferred
, dannearest
yang didukung.
Indeks
- Indeks karakter pengganti tidak didukung.
- Cloud Firestore dengan kompatibilitas MongoDB tidak secara otomatis membuat
indeks pada
_id
, tetapi memastikan nilai_id
unik dalam koleksi. - Indeks tanpa multikey yang diaktifkan tidak otomatis diubah menjadi indeks multikey berdasarkan operasi tulis. Anda harus mengaktifkan multikey saat membuat indeks dan opsi ini tidak dapat diubah.
Error
- Kode dan pesan error dapat berbeda antara Cloud 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 mungkin diabaikan.
Kueri dan operasi tulis
Perintah | Kolom Tidak Didukung |
---|---|
|
|
|
|
|
|
|
|
|
Dalam pernyataan penghapusan:
|
|
|
|
|
|
|
|
|
|
(tidak ada) |
Transaksi dan sesi
Perintah | Kolom Tidak Didukung |
---|---|
|
|
|
|
|
(tidak ada) |
Administrasi
Perintah | Kolom Tidak Didukung | Catatan |
---|---|---|
|
|
filter harus kosong jika disediakan. |
|
|
authorizedCollections harus salah jika disediakan. |
|
|
|
|
|
Perintah ini tanpa pengoperasian.capped harus bernilai salah (false) jika disediakan. |
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.