Aracılığıyla paylaş


MongoDB için Azure Cosmos DB (3.6 sürümü): desteklenen özellikler ve söz dizimi

ŞUNLAR IÇIN GEÇERLIDIR: MongoDB

Azure Cosmos DB, Microsoft'un global olarak dağıtılan çok modelli veritabanı hizmetidir. Açık kaynak MongoDB istemci sürücülerinden herhangi birini kullanarak MongoDB için Azure Cosmos DB ile iletişim kurabilirsiniz. MongoDB için Azure Cosmos DB, MongoDB kablo protokolüne bağlı olarak mevcut istemci sürücülerinin kullanılmasını sağlar.

MongoDB için Azure Cosmos DB'yi kullanarak, Azure Cosmos DB'nin sağladığı tüm kurumsal özelliklerle alışkın olduğunuz MongoDB'nin avantajlarından yararlanabilirsiniz: genel dağıtım, otomatik parçalama, kullanılabilirlik ve gecikme garantileri, bekleyen şifreleme, yedeklemeler ve çok daha fazlası.

Not

MongoDB için Azure Cosmos DB'nin 3.6 sürümünde kullanım süresi sonu (EOL) için geçerli bir plan yoktur. Gelecekteki bir EOL için en düşük bildirim üç yıldır.

Protokol Desteği

MongoDB için Azure Cosmos DB, yeni hesaplar için varsayılan olarak MongoDB sunucu sürümü 3.6 ile uyumludur. 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ülerinin MongoDB için Azure Cosmos DB'ye bağlanabilmesi gerekir. MongoDB hesapları için Azure Cosmos DB API'sini oluşturduğunuzda, hesabın 3.6 sürümünde uç nokta biçimindeyken *.mongo.cosmos.azure.com hesabın 3.2 sürümünde uç nokta biçimindedir *.documents.azure.com.

Sorgu dili desteği

MongoDB için Azure Cosmos DB, MongoDB sorgu dili yapıları için kapsamlı destek sağlar. Aşağıdaki bölümlerde şu anda Azure Cosmos DB tarafından desteklenen sunucu işlemlerinin, işleçlerin, aşamaların, komutların ve seçeneklerin ayrıntılı listesi gösterilmektedir.

Not

Bu makalede yalnızca desteklenen sunucu komutları listelenir ve istemci tarafı sarmalayıcı işlevleri hariç tutulur. ve gibi deleteMany() istemci tarafı sarmalayıcı işlevleri ve updateMany()update() sunucu komutlarını dahili olarak kullanırdelete(). Desteklenen sunucu komutlarını kullanan işlevler MongoDB için Azure Cosmos DB ile uyumludur.

Veritabanı komutları

MongoDB için Azure Cosmos DB aşağıdaki veritabanı komutlarını destekler:

Sorgulama ve yazma işlemi komutları

Command Desteklenir
change streams Yes
delete Evet
eval Hayı
find Evet
findAndModify Evet
getLastError Evet
getMore Evet
getPrevError Hayı
insert Evet
parallelCollectionScan Hayır
resetError Hayır
update Evet

Kimlik doğrulama komutları

Command Desteklenir
authenticate Yes
getnonce Evet
logout Yes

Yönetim komutları

Command Desteklenir
cloneCollectionAsCapped Hayır
collMod Hayır
connectionStatus Hayır
convertToCapped Hayır
copydb Hayır
create Evet
createIndexes Evet
currentOp Evet
drop Evet
dropDatabase Evet
dropIndexes Evet
filemd5 Evet
killCursors Evet
killOp Hayı
listCollections Evet
listDatabases Evet
listIndexes Evet
reIndex Evet
renameCollection Hayır

Tanılama komutları

Command Desteklenir
buildInfo Yes
collStats Evet
connPoolStats Hayır
connectionStatus Hayır
dataSize Hayır
dbHash Hayır
dbStats Evet
explain Evet
features Hayı
hostInfo Evet
listDatabases Evet
listCommands Hayır
profiler Hayır
serverStatus Hayır
top Hayır
whatsmyuri Evet

Toplama ardışık düzeni

Toplama komutları

Command Desteklenir
aggregate Yes
count Evet
distinct Evet
mapReduce Hayır

Toplama aşamaları

Command Desteklenir
addFields Yes
bucket Hayır
bucketAuto Hayır
changeStream Evet
collStats Hayı
count Evet
currentOp Hayı
facet Evet
geoNear Evet
graphLookup Evet
group Evet
indexStats Hayı
limit Evet
listLocalSessions Hayır
listSessions Hayır
lookup Kısmi
match Yes
out Evet
project Evet
redact Evet
replaceRoot Evet
replaceWith Hayı
sample Evet
skip Evet
sort Evet
sortByCount Evet
unwind Evet

Not

$lookuphenüz sunucu sürümü 3.6'da kullanıma sunulan bağıntısız alt sorgular özelliğini desteklemez. ve pipeline alanlarıyla işlecini kullanmayı $lookup denerseniz içeren let is not supported bir iletiyle let ilgili bir hata alırsınız.

Mantıksal ifadeler

Command Desteklenir
and Yes
not Evet
or Yes

Küme ifadeleri

Command Desteklenir
setEquals Yes
setIntersection Evet
setUnion Evet
setDifference Evet
setIsSubset Evet
anyElementTrue Evet
allElementsTrue Yes

Karşılaştırma ifadeleri

Not

MongoDB IÇIN API, sorguda dizi değişmez değeri olan karşılaştırma ifadelerini desteklemez.

Command Desteklenir
cmp Yes
eq Evet
gt Evet
gte Evet
lt Evet
lte Evet
ne Evet
in Evet
nin Yes

Aritmetik ifadeler

Command Desteklenir
abs Yes
add Evet
ceil Evet
divide Evet
exp Evet
floor Evet
ln Evet
log Evet
log10 Evet
mod Evet
multiply Evet
pow Evet
sqrt Evet
subtract Evet
trunc Yes

Dize ifadeleri

Command Desteklenir
concat Yes
indexOfBytes Evet
indexOfCP Evet
split Evet
strLenBytes Evet
strLenCP Evet
strcasecmp Evet
substr Evet
substrBytes Evet
substrCP Evet
toLower Evet
toUpper Yes

Metin arama işleci

Command Desteklenir
meta Hayır

Dizi ifadeleri

Command Desteklenir
arrayElemAt Yes
arrayToObject Evet
concatArrays Evet
filter Evet
indexOfArray Evet
isArray Evet
objectToArray Evet
range Evet
reverseArray Evet
reduce Evet
size Evet
slice Evet
zip Evet
in Yes

Değişken işleçleri

Command Desteklenir
map Yes
let Yes

Sistem değişkenleri

Command Desteklenir
$$CURRENT Yes
$$DESCEND Evet
$$KEEP Evet
$$PRUNE Evet
$$REMOVE Evet
$$ROOT Yes

Değişmez değer işleci

Command Desteklenir
literal Yes

Tarih ifadeleri

Command Desteklenir
dayOfYear Yes
dayOfMonth Evet
dayOfWeek Evet
year Evet
month Evet
week Evet
hour Evet
minute Evet
second Evet
millisecond Evet
dateToString Evet
isoDayOfWeek Evet
isoWeek Evet
dateFromParts Evet
dateToParts Evet
dateFromString Evet
isoWeekYear Yes

Koşullu ifadeler

Command Desteklenir
cond Yes
ifNull Evet
switch Yes

Veri türü işleci

Command Desteklenir
type Yes

Biriktirici ifadeleri

Command Desteklenir
sum Yes
avg Evet
first Evet
last Evet
max Evet
min Evet
push Evet
addToSet Evet
stdDevPop Evet
stdDevSamp Yes

Birleştirme işleci

Command Desteklenir
mergeObjects Yes

Veri türleri

Command Desteklenir
Double Yes
String Evet
Object Evet
Array Evet
Binary Data Evet
ObjectId Evet
Boolean Evet
Date Evet
Null Evet
32-bit Integer (int) Evet
Timestamp Evet
64-bit Integer (long) Evet
MinKey Evet
MaxKey Evet
Decimal128 Evet
Regular Expression Evet
JavaScript Evet
JavaScript (with scope) Evet
Undefined Yes

Dizinler ve dizin özellikleri

Dizinler

Command Desteklenir
Single Field Index Yes
Compound Index Evet
Multikey Index Evet
Text Index Hayı
2dsphere Evet
2d Index Hayır
Hashed Index Hayır

Dizin özellikleri

Command Desteklenir
TTL Yes
Unique Evet
Partial Hayır
Case Insensitive Hayır
Sparse Hayır
Background Evet

İşleçler

Mantıksal işleçler

Command Desteklenir
or Yes
and Evet
not Evet
nor Yes

Öğe işleçleri

Command Desteklenir
exists Yes
type Yes

Değerlendirme sorgusu işleçleri

Command Desteklenir
expr Yes
jsonSchema Hayı
mod Evet
regex Yes
text Hayır (Desteklenmez. Bunun yerine $regex kullanın.)
where Hayır

$regex sorgularında, sol bağlantılı 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 |eklenmesi $ gerektiğinde, en iyisi iki (veya daha fazla) regex sorgusu oluşturmaktır. Örneğin, aşağıdaki özgün sorgu göz önünde bulundurulduğunda: find({x:{$regex: /^abc$/})aşağıdaki gibi 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 | bir "veya" işlevi işlevi görür. Sorgufind({x:{$regex: /^abc |^def/}), alanında x veya "def"ile başlayan değerlerin bulunduğu belgelerle "abc" 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

Command Desteklenir
all Yes
elemMatch Evet
size Yes

Açıklama işleci

Command Desteklenir
comment Yes

Projeksiyon işleçleri

Command Desteklenir
elemMatch Yes
meta Hayı
slice Evet

Güncelleştirme işleçleri

Alan güncelleştirme işleçleri

Command Desteklenir
inc Yes
mul Evet
rename Evet
setOnInsert Evet
set Evet
unset Evet
min Evet
max Evet
currentDate Yes

Dizi güncelleştirme işleçleri

Command Desteklenir
$ Yes
$[] Evet
$[\<identifier\>] Evet
addToSet Evet
pop Evet
pullAll Evet
pull Evet
push Evet
pushAll Yes

Değiştiricileri güncelleştirme

Command Desteklenir
each Yes
slice Evet
sort Evet
position Yes

Bit düzeyinde güncelleştirme işleci

Command Desteklenir
bit Yes
bitsAllSet Hayır
bitsAnySet Hayır
bitsAllClear Hayır
bitsAnyClear Hayır

Jeo-uzamsal işleçler

Operatör Desteklenir
$geoWithin Yes
$geoIntersects Evet
$near Evet
$nearSphere Evet
$geometry Evet
$minDistance Evet
$maxDistance Evet
$center Hayır
$centerSphere Hayır
$box Hayır
$polygon Hayır

Sıralama işlemleri

İşlemi kullandığınızda findOneAndUpdate , tek bir alandaki sıralama işlemleri desteklenir, ancak birden çok alandaki sıralama işlemleri desteklenmez.

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 uyumlu herhangi bir MongoDB sürücüsü aracılığıyla GridFS'i 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. Azure Cosmos DB el ile çoğaltma komutlarını desteklemez.

Yeniden Denenebilir Yazma İşlemleri

Azure Cosmos DB henüz yeniden denenebilir yazmaları desteklemez. İstemci sürücüleri bağlantı dizesi eklemelidirretryWrites=false.

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, yani addShard, balancerStart, moveChunk vb. komutları çağırmanız gerekmez. Yalnızca kapsayıcıları oluştururken veya verileri sorgularken parça anahtarını belirtmeniz gerekir.

Oturumlar

Azure Cosmos DB henüz sunucu tarafı oturum komutlarını desteklemez.

Etkin kalma süresi (TTL)

Azure Cosmos DB, belgenin zaman damgasını temel alan yaşam süresini (TTL) destekler. TTL, Azure portalından koleksiyonlar için etkinleştirilebilir.

Kullanıcı ve rol yönetimi

Azure Cosmos DB henüz kullanıcıları ve rolleri desteklemez. Ancak Azure rol tabanlı erişim denetimini (Azure RBAC) ve Azure portalındaki bağlantı dizesi bölmesinden edinilebilen okuma-yazma ve salt okunur parolaları veya anahtarları destekler.

Yazma Sorunu

Bazı uygulamalar, yazma işlemi sırasında gereken yanıt sayısını belirten Yazma Sorunu'na dayanır. Azure Cosmos DB'nin çoğaltmayı işleme şekli nedeniyle, güçlü tutarlılık kullanılırken tüm yazma işlemleri varsayılan olarak otomatik olarak çekirdek çoğunluğunda olur. İstemci kodu tarafından belirtilen yazma endişeleri yoksayılır. Daha fazla bilgi edinmek için kullanılabilirliği ve performansı en üst düzeye çıkarmak için tutarlılık düzeylerini kullanma makalesine bakın.

Sonraki adımlar