Bu sayfada, Cloud Firestore ile MongoDB arasındaki davranış farklılıkları açıklanmaktadır.
MongoDB sürümüne göre desteklenen özelliklerin dökümü için aşağıdaki bölümleri inceleyin:
- Desteklenen özellikler: 8.0
- Desteklenen özellikler: 7.0
- Desteklenen özellikler: 6.0
- Desteklenen özellikler: 5.0
Bağlantılar ve veritabanları
- Her bağlantı tek bir Cloud Firestore veritabanıyla sınırlıdır.
- Bağlantı kurulmadan önce bir veritabanı oluşturulmalıdır.
Adlandırma
Veri modelinizin bölümlerini adlandırırken aşağıdaki farklılıklar geçerlidir.
Koleksiyonlar
__.*__ile eşleşen koleksiyon adları desteklenmez.
Alanlar
__.*__ile eşleşen alan adları desteklenmez.- Boş alan adları desteklenmez.
Dokümanlar
- Maksimum doküman boyutu 16 MiB'dir.
- Alanların maksimum iç içe yerleştirme derinliği 20'dir. Her dizi ve nesne türündeki alan, genel derinliğe bir seviye ekler.
- Eventarc etkinliklerinde, 10 MiB'tan büyük dokümanlar etkinlik yüküne dahil edilmez.
_id alanı
- Üst düzey
_idalanı ObjectId, dize, 64 bit tam sayı, 32 bit tam sayı, Double, ikili veya nesne olmalıdır. Diğer BSON türleri desteklenmez.
Değerler
- JavaScript, Symbol, DBPointer ve Undefined BSON türleri desteklenmez.
Tarih
- Tarih değerleri
[0001-01-01T00:00:00Z, 9999-12-31T23:59:59Z]aralığında olmalıdır.
Decimal128
NaN, pozitif sonsuz ve negatif sonsuz değerleri yazma sırasında standartlaştırılır.- Decimal128 üzerinde aritmetik işlemler desteklenmez.
Çift
NaNdeğerleri yazma sırasında standartlaştırılır.
Normal ifade
- Normal ifade seçenekleri geçerli olmalı ("i", "m", "s", "u" veya "x") ve tekrar olmadan alfabetik sırayla sağlanmalıdır.
Sorgular
- Doğal sıralama ölçütü (açık bir sıralama içermeyen sorgular), kampanya siparişi veya
_idartan düzende sıralama ölçütüyle eşleşmiyor.
Toplamalar
- Toplu işlemler 250 aşamayla sınırlıdır.
$mergeve$outaşamaları desteklenmez. Desteklenen aşamaların ve operatörlerin tam listesi için komutlar bölümüne bakın.$facetaşaması, geçici bir ifade olduğu için giriş aşamalarında$randveya$sampleifadesini desteklemez.
Yazma işlemleri
- Adları dolar işareti ("$") ile başlayan dokümanlar,
updateveyafindAndModify'nin upsert özelliği kullanılarak oluşturulamaz. - Sürücünün bu özelliği kullanmaya çalışmadığından emin olmak için bağlantı dizenizin
retryWrites=falseiçerdiğinden emin olun (veya sürücünüze uygun yöntemi kullanın). Yeniden denenebilir yazma işlemleri desteklenmez.
İşlemler
Anlık görüntü yalıtımı ve serileştirilebilir işlemler desteklenir.
Varsayılan olarak işlemler, anlık görüntü yalıtımıyla iyimser eşzamanlılık kontrollerini kullanır.
Endişeyi okuma
Cloud Firestore ,
snapshot,majorityvelinearizableokuma endişelerini destekler. Varsayılan değer, anlık görüntü yalıtımını ifade edensnapshotdeğeridir.Uygulama katı tutarlılık gerektirdiğinde ve yazma çarpıklığı anormalliklerini önlemesi gerektiğinde
linearizablekullanın. Diğer iş yükleri içinsnapshot, performansı artırabilir ve işlem çekişmesini azaltabilir.
Endişenizi yazın
- Yalnızca
w: 'majority'vew: 1yazma endişeleri desteklenir.
Okuma tercihi
- Yalnızca
primary,primaryPreferred,primary_preferred,secondary_preferredvenearestokuma endişeleri desteklenir.
Dizinler
- Joker karakter dizinleri desteklenmez.
- Cloud Firestore,
_idüzerinde otomatik olarak dizin oluşturmaz ancak_iddeğerlerinin bir koleksiyon içinde benzersiz olmasını sağlar. Benzer bir sıralama davranışı elde etmek için_idalanında açıkça sıralı bir dizin oluşturmanız gerekir. Ancak özellikle_iddeğerleriniz monoton bir şekilde artıyor veya azalıyorsa (ör.zaman damgaları) olası hotspot sorunlarına dikkat edin. Bu durum, ölçeklendirme performansını etkileyebilir. - Çoklu anahtar etkinleştirilmemiş dizinler, yazma işlemlerine göre otomatik olarak çoklu anahtar dizinleri olarak değiştirilmez. Dizini oluştururken çoklu anahtarı etkinleştirmeniz gerekir. Bu seçenek değiştirilemez.
Hatalar
- Hata kodları ve mesajları Cloud Firestore ile MongoDB arasında farklılık gösterebilir.
Komutlar
Aşağıdaki davranış farklılıkları belirli komutlar için geçerlidir.
- Aşağıdaki tablolarda listelenmeyen komutlar desteklenmez.
commentçoğu komut tarafından kabul edilir ancak yoksayılır.maxTimeMSçoğu komut tarafından kabul edilir ancak yoksayılabilir.
Sorgular
ve yazar
| Command | Desteklenmeyen Alanlar |
|---|---|
|
|
|
|
|
|
|
|
(hiçbiri) |
|
|
Güncelleme ifadesinde:
|
|
|
Bir silme ifadesinde:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(hiçbiri) |
|
|
(hiçbiri) |
İşlemler
ve oturumlar
| Command | Desteklenmeyen Alanlar |
|---|---|
|
|
(hiçbiri) |
|
|
(hiçbiri) |
|
|
(hiçbiri) |
Yönetim
| Command | Desteklenmeyen Alanlar | Notlar |
|---|---|---|
|
|
|
filter sağlanırsa boş olmalıdır. |
|
|
(hiçbiri) |
authorizedCollections sağlanırsa yanlış olmalıdır. |
|
|
(hiçbiri) |
|
|
|
(hiçbiri) |
|
|
|
(hiçbiri) |
|
|
|
|
Bu komut işlem yapmaz. Sağlanmışsa capped değeri false olmalıdır.
|
|
|
(hiçbiri) |
Koleksiyon sınırlamalarını kaldırma
Bir koleksiyonu sildiğinizde aşağıdaki sınırlamalar geçerli olur:
- Dizini yeniden oluşturma: Bir dizini sildikten hemen sonra aynı dizin yapılandırmasını oluşturamazsınız. Arka planda silme işleminin tamamlanmasını beklemeniz gerekir.
- Boyut sınırı: Büyük koleksiyonların silinmesi, bağlantı zaman aşımlarına neden olabilir. Zaman aşımı görüyorsanız bağlantı son tarihini artırın. Alternatif olarak toplu silme özelliğini kullanabilirsiniz.
- Etkinlikler:
dropkomutu kullanılırken Eventarc için bırakma koleksiyonu etkinlikleri oluşturulmaz.
Sırada ne var?
- Hızlı başlangıç: Veritabanı oluşturma ve veritabanına bağlanma başlıklı makaledeki adımları uygulayın.
- Desteklenen özelliklerin tam listesi için Desteklenen MongoDB veri türleri, sürücüleri ve özellikleri başlıklı makaleyi inceleyin.