Azure Cosmos DB, Microsoft'un genel olarak dağıtılmış çok modelli veritabanı hizmetidir. Açık kaynak MongoDB istemci sürücülerini kullanarak MongoDB için Azure Cosmos DB API'si ile iletişim kurabilirsiniz. MongoDB için Azure Cosmos DB’nin API’si, MongoDB kablo protokolüne bağlı kalarak mevcut istemci sürücülerinin kullanımını etkinleştirir.
MongoDB için Azure Cosmos DB API'sini kullanarak, Cosmos DB'nin sağladığı tüm kurumsal özelliklerle, kullanılmaya hazır mongoDB'nin avantajlarından faydalanabilirsiniz: genel dağıtım,otomatik parçalama, kullanılabilirlik ve gecikme süresi garantileri, beklemede şifreleme, yedeklemeler ve çok daha fazlası.
Protokol Desteği
Desteklenen işleçler ve tüm sınırlamalar veya özel durumlar aşağıda listelenmiştir. Bu protokolleri anlayan tüm istemci sürücüleri MongoDB için Azure Cosmos DB’nin API’sine bağlanabilmesi gerekir. MongoDB hesapları için Azure Cosmos DB API'sini kullanırken hesapların 3.6+ sürümleri uç nokta biçimindeyken hesapların 3.2 sürümünde uç nokta *.mongo.cosmos.azure.com*.documents.azure.com biçimindedir.
Not
Bu makale yalnızca desteklenen sunucu komutlarını listeler ve istemci tarafı sarmalayıcı işlevlerini dışlar. ve gibi istemci tarafı sarmalayıcı işlevleri deleteMany()updateMany() ve sunucu komutlarını dahili olarak delete()update() kullanır. Desteklenen sunucu komutlarını kullanan işlevler, MongoDB için Azure Cosmos DB API'si ile uyumludur.
Sorgu dili desteği
MongoDB için Azure Cosmos DB API'si, MongoDB sorgu dili yapıları için kapsamlı destek sağlar. Şu anda desteklenen işlemlerin, işleçlerin, aşamaların, komutların ve seçeneklerin ayrıntılı listesini aşağıda bulabilirsiniz.
Veritabanı komutları
Azure Cosmos DB'nin MongoDB API'si aşağıdaki veritabanı komutlarını destekler:
$lookuphenüz sunucu sürümü 3.6'da tanıt kullanılan, ilişkili olmayan altqueries özelliğini desteklemez. işlecini ve alanlarıyla kullanmayı let is not supported denerse iletisini içeren bir hata $lookupletpipeline alırsınız.
Mantıksal ifadeler
Komut
Destekleniyor
$and
Yes
$not
Yes
$or
Yes
Dönüştürme ifadeleri
Komut
Destekleniyor
$convert
Yes
$toBool
Yes
$toDate
Yes
$toDecimal
Yes
$toDouble
Yes
$toInt
Yes
$toLong
Yes
$toObjectId
Yes
$toString
Yes
Küme ifadeleri
Komut
Desteklenir
$setEquals
Yes
$setIntersection
Yes
$setUnion
Yes
$setDifference
Yes
$setIsSubset
Yes
$anyElementTrue
Yes
$allElementsTrue
Yes
Karşılaştırma ifadeleri
Not
MongoDB API'si sorguda dizi değişmez değer içeren karşılaştırma ifadelerini desteklemez.
Komut
Destekleniyor
$cmp
Yes
$eq
Yes
$gt
Yes
$gte
Yes
$lt
Yes
$lte
Yes
$ne
Yes
$in
Yes
$nin
Yes
Aritmetik ifadeler
Komut
Destekleniyor
$abs
Yes
$add
Yes
$ceil
Yes
$divide
Yes
$exp
Yes
$floor
Yes
$ln
Yes
$log
Yes
$log10
Yes
$mod
Yes
$multiply
Yes
$pow
Yes
$sqrt
Yes
$subtract
Yes
$trunc
Yes
Dize ifadeleri
Komut
Desteklenir
$concat
Yes
$indexOfBytes
Yes
$indexOfCP
Yes
$ltrim
Yes
$rtrim
Yes
$trim
Yes
$split
Yes
$strLenBytes
Yes
$strLenCP
Yes
$strcasecmp
Yes
$substr
Yes
$substrBytes
Yes
$substrCP
Yes
$toLower
Yes
$toUpper
Yes
Metin arama işleci
Komut
Desteklenir
$meta
No
Dizi ifadeleri
Komut
Destekleniyor
$arrayElemAt
Yes
$arrayToObject
Yes
$concatArrays
Yes
$filter
Yes
$indexOfArray
Yes
$isArray
Yes
$objectToArray
Yes
$range
Yes
$reverseArray
Yes
$reduce
Yes
$size
Yes
$slice
Yes
$zip
Yes
$in
Yes
Değişken işleçleri
Komut
Destekleniyor
$map
Yes
$let
Yes
Sistem değişkenleri
Komut
Destekleniyor
$$CURRENT
Yes
$$DESCEND
Yes
$$KEEP
Yes
$$PRUNE
Yes
$$REMOVE
Yes
$$ROOT
Yes
Değişmez işleç
Komut
Destekleniyor
$literal
Yes
Tarih ifadeleri
Komut
Destekleniyor
$dayOfYear
Yes
$dayOfMonth
Yes
$dayOfWeek
Yes
$year
Yes
$month
Yes
$week
Yes
$hour
Yes
$minute
Yes
$second
Yes
$millisecond
Yes
$dateToString
Yes
$isoDayOfWeek
Yes
$isoWeek
Yes
$dateFromParts
Yes
$dateToParts
Yes
$dateFromString
Yes
$isoWeekYear
Yes
Koşullu ifadeler
Komut
Desteklenir
$cond
Yes
$ifNull
Yes
$switch
Yes
Veri türü işleci
Komut
Destekleniyor
$type
Yes
Biriktirici ifadeleri
Komut
Destekleniyor
$sum
Yes
$avg
Yes
$first
Yes
$last
Yes
$max
Yes
$min
Yes
$push
Yes
$addToSet
Yes
$stdDevPop
Yes
$stdDevSamp
Yes
Birleştirme işleci
Komut
Desteklenir
$mergeObjects
Yes
Veri türleri
Azure Cosmos DB'nin MongoDB API'si, MongoDB BSON biçiminde kodlanmış belgeleri destekler. 4.0 API sürümü, performansı artırmak ve maliyetleri azaltmak için bu biçimin iç kullanımını artırır. 4.0 çalıştıran bir uç nokta üzerinden yazılan veya güncelleştirilen belgeler bundan yararlanabilir.
Bir yükseltme senaryosunda,sürüm 4.0'a yükseltmeden önce yazılmış belgeler, 4.0 uç noktası aracılığıyla bir yazma işlemi yoluyla güncelleştirilene kadar gelişmiş performanstan yararlanmaz.
Komut
Destekleniyor
Çift
Evet
Dize
Yes
Nesne
Yes
Dizi
Yes
İkili Veriler
Yes
ObjectId
Yes
Boole
Yes
Tarih
Yes
Null
Yes
32 bit Tamsayı (int)
Yes
Timestamp
Yes
64 bit Tamsayı (uzun)
Yes
MinKey
Yes
MaxKey
Yes
Ondalık128
Yes
Normal ifade
Yes
JavaScript
Yes
JavaScript (kapsam ile)
Yes
Tanımsız
Yes
Dizinler ve dizin özellikleri
Dizinler
Komut
Desteklenir
Tek Alan Dizini
Yes
Bileşik Dizin
Yes
Çok Anahtarlı Dizin
Yes
Metin Dizini
No
2dsphere
Yes
2d Dizin
No
Karma Dizin
Yes
Dizin özellikleri
Komut
Destekleniyor
TTL
Yes
Benzersiz
Yes
Kısmi
No
Büyük/Büyük/Harfe Duyarlı Değil
No
Seyrek
No
Arka Plan
Yes
İşleçler
Mantıksal işleçler
Komut
Destekleniyor
$or
Yes
$and
Yes
$not
Yes
$nor
Yes
Öğe işleçleri
Komut
Destekleniyor
$exists
Yes
$type
Yes
Değerlendirme sorgusu işleçleri
Komut
Destekleniyor
$expr
No
$jsonSchema
No
$mod
Yes
$regex
Yes
$text
Hayır (Desteklenmiyor. Bunun $regex kullanın.)
$where
No
$Regex sorgularda, sola sabitlenmiş ifadeler Dizin aramasına izin verir. Ancak 'i' değiştiricisini (büyük/küçük harf duyarlığı) ve 'm' değiştiricisini (çok satırlılık) kullanmak, tüm ifadelerde koleksiyon taramasına neden olur.
'$' veya '|' karakterinin dahil edilmesinin gerektiği durumlarda iki (veya daha fazla) normal ifade sorgusu oluşturmak en iyisidir. Örneğin, aşağıdaki özgün sorgu verildiğinde find({x:{$regex: /^abc$/}) , şu şekilde değiştirilmesi gerekir:
find({x:{$regex: /^abc/, x:{$regex:/^abc$/}})
İlk kısım aramayı ^abc ile başlayan belgeler ile sınırlamak için dizini kullanır, ikinci kısım ise tam girişler ile eşleşir. Çubuk işleci '|' "veya" işlevini görür - find({x:{$regex: /^abc |^def/}) sorgusu 'x' alanının değerlerinin "abc" ile veya "def" ile başladığı belgelerle eşleşir. Dizinden yararlanmak için sorgunun $or işleci ile birleştirilen iki farklı sorguya bölünmesi gerekir: find( {$or : [{x: $regex: /^abc/}, {$regex: /^def/}] }).
Dizi işleçleri
Komut
Destekleniyor
$all
Yes
$elemMatch
Yes
$size
Yes
Açıklama işleci
Komut
Desteklenir
$comment
Yes
Projeksiyon işleçleri
Komut
Destekleniyor
$elemMatch
Yes
$meta
No
$slice
Yes
Güncelleştirme işleçleri
Alan güncelleştirme işleçleri
Komut
Destekleniyor
$inc
Yes
$mul
Yes
$rename
Yes
$setOnInsert
Yes
$set
Yes
$unset
Yes
$min
Yes
$max
Yes
$currentDate
Yes
Dizi güncelleştirme işleçleri
Komut
Destekleniyor
$
Yes
$[]
Yes
$[<identifier>]
Yes
$addToSet
Yes
$pop
Yes
$pullAll
Yes
$pull
Yes
$push
Yes
$pushAll
Yes
Güncelleştirme değiştiricileri
Komut
Destekleniyor
$each
Yes
$slice
Yes
$sort
Yes
$position
Yes
Bit düzeyinde güncelleştirme işleci
Komut
Destekleniyor
$bit
Yes
$bitsAllSet
No
$bitsAnySet
No
$bitsAllClear
No
$bitsAnyClear
No
Jeo-uzamsal işleçler
Operatör
Desteklenir
$geoWithin
Yes
$geoIntersects
Yes
$near
Yes
$nearSphere
Yes
$geometry
Yes
$minDistance
Yes
$maxDistance
Yes
$center
No
$centerSphere
No
$box
No
$polygon
No
Sıralama işlemleri
işlemi findOneAndUpdate kullanırken, tek bir alanda sıralama işlemleri desteklene, ancak birden çok alanda sıralama işlemleri desteklanmaz.
Dizinleme
MongoDB API'si, birden çok alanda sıralamayı etkinleştirmek, sorgu performansını geliştirmek ve benzersizliği zorlamak için çeşitli dizinleri destekler.
GridFS
Azure Cosmos DB, GridFS ile uyumlu tüm Mongo sürücülerini kullanarak GridFS'yi destekler.
Çoğaltma
Azure Cosmos DB, en düşük katmanlarda otomatik, yerel çoğaltmayı destekler. Bu mantık, düşük gecikme süresi ve küresel çoğaltma elde etmek için genişletilir. Cosmos VERITABANı, el ile çoğaltma komutlarını desteklemez.
Yeniden Denenebilir Yazmalar
Cosmos VERITABANı henüz yeniden denenebilir yazmaları desteklemez. İstemci sürücülerinin bağlantı dizelerine 'retryWrites=false' URL parametresini eklemesi gerekir. Daha fazla URL parametresine ön ek olarak '&' eklenebilir.
Parçalama
Azure Cosmos DB, otomatik, sunucu tarafı parçalamasını destekler. Parça oluşturma, yerleştirme ve dengelemeyi otomatik olarak yönetir. Azure Cosmos DB el ile parçalama komutlarını desteklemez; bu da addShard, balancerStart, moveChunk gibi komutları çağırmanız gerek yoktur. Parça anahtarını yalnızca kapsayıcıları oluştururken veya verileri sorgularken belirtmeniz gerekir.
Oturumlar
Azure Cosmos DB henüz sunucu tarafı oturum komutlarını desteklememektedir.
Etkin kalma süresi (TTL)
Azure Cosmos DB, belgenin zaman damgasına göre yaşam süresi (TTL) desteği sunar. TTL, koleksiyonlar için Azure portal.
İşlemler
Çok belgeli işlemler, parçalanmamış bir koleksiyonda de destekler. Çok belgeli işlemler koleksiyonlarda veya parçalı koleksiyonlarda desteklanmaz. İşlemler için zaman aşımı sabit bir 5 saniyedir.
Kullanıcı ve rol yönetimi
Azure Cosmos DB henüz kullanıcıları ve rolleri desteklememektedir. Ancak Cosmos DB, Azure rol tabanlı erişim denetimi (Azure RBAC) ve Azure portal (Bağlantı Dizesi sayfası) aracılığıyla edinilen okuma/yazma ve salt okunur parolaları/anahtarları destekler.
MongoDB için Azure Cosmos DB API'si ile Studio 3T'yi kullanmayı öğrenin.
Robo 3T'yi MongoDB için Azure Cosmos DB API'si ile kullanmayı öğrenin.
MongoDB için Azure Cosmos DB API'si ile MongoDB örneklerini keşfedin.
Azure Cosmos DB'ye geçiş için kapasite planlaması yapmaya mı çalışıyorsunuz? Kapasite planlaması için mevcut veritabanı kümeniz hakkında bilgi kullanabilirsiniz.
Mevcut veritabanı kümenizin sanal çekirdek ve sunucu sayısı hakkında tek bilginiz varsa, sanal çekirdek veya vCPUS kullanarak istek birimlerini tahmin hakkında bilgi edinebilirsiniz