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 database 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 NaNdikanonikalisasi 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 _idmenaik.
Agregasi
- Agregasi dibatasi hingga 250 stage.
- Stage $mergedan$outtidak didukung. Lihat bagian perintah untuk mengetahui daftar lengkap operator dan tahap yang didukung.
- Tahap $lookuptidak mendukung kolomletdanpipeline.
Tulis
- Dokumen dengan nama yang diawali dengan tanda dolar ("$") tidak dapat
dibuat menggunakan fitur upsert updateataufindAndModify.
- 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
- Firestore dengan kompatibilitas MongoDB mendukung masalah pembacaan - snapshot,- majority, dan- linearizable. Defaultnya adalah- snapshotyang merujuk pada snapshot isolation.- Gunakan - linearizablejika aplikasi memerlukan konsistensi yang ketat dan harus mencegah anomali skew operasi tulis. Untuk workload lain,- snapshotdapat meningkatkan performa dan mengurangi pertentangan transaksi.
Masalah operasi tulis
- Hanya masalah operasi tulis w: 'majority'danw: 1yang didukung.
Preferensi operasi baca
- Hanya masalah operasi baca primary,primaryPreferred,primary_preferred,secondary_preferred, dannearestyang didukung.
Indeks
- Indeks karakter pengganti tidak didukung.
- Firestore dengan kompatibilitas MongoDB tidak otomatis membuat
indeks pada _id, tetapi memastikan nilai_idunik 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 Firestore dengan kompatibilitas MongoDB dan MongoDB.
Perintah
Perbedaan perilaku berikut berlaku untuk perintah tertentu.
- Perintah yang tidak tercantum dalam tabel berikut tidak didukung.
- maxTimeMSditerima oleh sebagian besar perintah, tetapi mungkin diabaikan.
Kueri dan 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 | 
|---|---|---|
| 
 | 
 
 | filterharus kosong jika disediakan. | 
| 
 | 
 | authorizedCollectionsharus salah jika disediakan. | 
| 
 | 
 | |
| 
 | 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 | Perintah ini tanpa pengoperasian. cappedharus 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.