MongoDB vCore용 Azure Cosmos DB와의 MongoDB 호환성 및 기능 지원
적용 대상: MongoDB vCore
Azure Cosmos DB for MongoDB vCore를 사용하면 Azure Cosmos DB에서 제공하는 향상된 엔터프라이즈 기능에 액세스하면서 친숙한 MongoDB 이점을 경험할 수 있습니다. MongoDB 유선 프로토콜을 따라 호환성을 보장하므로 이미 익숙한 기존 클라이언트 드라이버, SDK 및 기타 도구를 활용할 수 있습니다.
프로토콜 지원
지원되는 연산자 및 제한 사항이나 예외는 다음과 같습니다. 이러한 프로토콜을 인식하는 모든 클라이언트 드라이버는 Azure Cosmos DB for MongoDB에 연결할 수 있습니다. Azure Cosmos DB for MongoDB vCore 클러스터를 만들 때 엔드포인트는 형식 *.mongocluster.cosmos.azure.com
입니다.
쿼리 언어 지원
Azure Cosmos DB for MongoDB는 MongoDB 쿼리 언어 구문을 포괄적으로 지원합니다. 아래에서 현재 지원되는 데이터베이스 명령, 연산자, 단계, 명령 및 옵션에 대한 자세한 목록을 찾을 수 있습니다.
참고 항목
이 문서에서는 지원되는 서버 명령만 나열하고 클라이언트 쪽 래퍼 함수는 제외합니다. deleteMany()
및 updateMany()
와 같은 클라이언트 쪽 래퍼 함수는 내부적으로 delete()
및 update()
서버 명령을 활용합니다. 지원되는 서버 명령을 활용하는 기능은 Azure Cosmos DB for MongoDB와 호환됩니다.
데이터베이스 명령
Azure Cosmos DB for MongoDB는 다음과 같은 데이터베이스 명령을 지원합니다.
범주 | Command | 지원됨 |
집계 명령 | aggregate | 예 |
count | 예 | |
distinct | 예 | |
mapReduce | 더 이상 사용되지 않음 | |
인증 명령 | authenticate | 예 |
getnonce | 예 | |
logout | 예 | |
지리 공간적 명령 | geoSearch | 더 이상 사용되지 않음 |
쿼리 계획 캐시 명령 | 아니요 | |
관리 명령 | cloneCollectionAsCapped | 아니요 제한된(Capped) 컬렉션은 현재 지원되지 않습니다. |
collMod | 부분 | |
compact | 아니요 | |
connPoolSync | 더 이상 사용되지 않음 | |
convertToCapped | 아니요 제한된(Capped) 컬렉션은 현재 지원되지 않습니다. | |
create | 부분 | |
createIndexes | 예 | |
currentOp | 예 | |
drop | 예 | |
dropDatabase | 예 | |
dropConnections | PaaS 서비스로 Azure에서 관리됩니다. | |
dropIndexes | 예 | |
filemd5 | 아니요 | |
fsync | PaaS 서비스로 Azure에서 관리됩니다. | |
fsyncUnlock | PaaS 서비스로 Azure에서 관리됩니다. | |
getDefaultRWConcern | 예 | |
getClusterParameter | 아니요 | |
getParameter | 예 | |
killCursors | 예 | |
killOp | 예 | |
listCollections | 예 | |
listDatabases | 예 | |
listIndexes | 예 | |
logRotate | PaaS 서비스로 Azure에서 관리됩니다. | |
reIndex | 예 | |
renameCollection | 예 | |
rotateCertificates | PaaS 서비스로 Azure에서 관리됩니다. | |
setFeatureCompatibilityVersion | PaaS 서비스로 Azure에서 관리됩니다. | |
setIndexCommitQuorum | 아니요 | |
setParameter | 부분 | |
setDefaultRWConcern | 아니요 | |
shutdown | PaaS 서비스로 Azure에서 관리됩니다. | |
사용자 및 역할 관리 명령 | 현재는 지원되지 않지만 나중에 Azure Active Directory를 통해 사용할 수 있습니다. | |
복제 명령 | Azure가 복제를 관리하므로 고객이 수동으로 복제할 필요가 없습니다. | |
분할 명령 | enableSharding | 예 |
isdbgrid | 예 | |
reshardCollection | 예 | |
shardCollection | 예 | |
unsetSharding | 더 이상 사용되지 않음 | |
addShard | PaaS(Platform-as-a-Service) 제품인 Azure는 분할된 데이터베이스 관리 및 리밸런싱을 관리합니다. 사용자가 컬렉션에 대한 분할 전략만 지정하면 Azure가 나머지를 처리합니다. | |
addShardToZone | ||
clearJumboFlag | ||
cleanupOrphaned | ||
removeShard | ||
removeShardFromZone | ||
setShardVersion | ||
mergeChunks | ||
checkShardingIndex | ||
getShardMap | ||
getShardVersion | ||
medianKey | ||
splitVector | ||
shardingState | ||
cleanupReshardCollection | ||
flushRouterConfig | ||
balancerCollectionStatus | ||
balancerStart | ||
balancerStatus | ||
balancerStop | ||
configureCollectionBalancing | ||
listShards | ||
split | ||
moveChunk | ||
updateZoneKeyRange | ||
movePrimary | ||
abortReshardCollection | ||
commitReshardCollection | ||
refineCollectionShardKey | ||
reshardCollection | 아니요 | |
쿼리 및 쓰기 작업 명령 | change streams | 아니요 |
delete | 예 | |
find | 예 | |
findAndModify | 예 | |
getLastError | 예 | |
getMore | 부분 | |
insert | 예 | |
resetError | 더 이상 사용되지 않음 | |
update | 예 | |
세션 명령 | abortTransaction | 예 |
commitTransaction | 예 | |
endSessions | 예 | |
killAllSessions | 아니요 | |
killAllSessionsByPattern | 아니요 | |
killSessions | 예 | |
refreshSessions | 아니요 | |
startSession | 예 | |
진단 명령 | availableQueryOptions | 아니요 |
buildInfo | 예 | |
collStats | 예 | |
connPoolStats | 아니요 | |
connectionStatus | 부분 | |
dataSize | 아니요 | |
dbHash | 아니요 | |
dbStats | 예 | |
driverOIDTest | PaaS 서비스로 Azure에서 관리됩니다. | |
explain | 예 | |
features | PaaS 서비스로 Azure에서 관리됩니다. | |
getCmdLineOpts | 예 | |
getLog | 예 | |
hostInfo | 부분 | |
_isSelf | 아니요 | |
listCommands | 예 | |
lockInfo | 아니요 | |
netstat | 아니요 | |
ping | 예 | |
profile | PaaS 서비스로 Azure에서 관리됩니다. | |
serverStatus | 예 | |
shardConnPoolStats | 더 이상 사용되지 않음 | |
top | 아니요 | |
validate | 예 | |
whatsmyuri | 예 | |
시스템 이벤트 감사 명령 | logApplicationMessage | 아니요 |
연산자
다음은 현재 Azure Cosmos DB for MongoDB vCore에서 지원되는 연산자 목록입니다.
참고 항목
$lookup
집계는 아직 'let'을 사용하여 변수 식을 사용할 수 없습니다.
“collStats”의 AvgObjsize 및 크기는 문서 크기가 2KB 미만인 경우에만 작동합니다.
범주 | Operator | 지원됨 |
비교 쿼리 연산자 | $eq | 예 |
$gt | 예 | |
$gte | 예 | |
$in | 예 | |
$lt | 예 | |
$lte | 예 | |
$ne | 예 | |
$nin | 예 | |
논리 쿼리 연산자 | $and | 예 |
$not | 예 | |
$nor | 예 | |
$or | 예 | |
요소 쿼리 연산자 | $exists | 예 |
$type | 예 | |
평가 쿼리 연산자 | $expr | 예 |
$jsonSchema | 아니요 | |
$mod | 예 | |
$regex | 예 | |
$text | 예 | |
$where | 아니요 | |
지리 공간적 연산자 | 프라이빗 미리 보기* | |
배열 쿼리 연산자 | $all | 예 |
$elemMatch | 예 | |
$size | 예 | |
비트 쿼리 연산자 | $bitsAllClear | 예 |
$bitsAllSet | 예 | |
$bitsAnyClear | 예 | |
$bitsAnySet | 예 | |
프로젝션 연산자 | $ | 예 |
$elemMatch | 예 | |
$meta | 예 | |
$slice | 예 | |
기타 쿼리 연산자 | $comment | 아니요 |
$rand | 예 | |
$natural | 아니요 | |
필드 업데이트 연산자 | $currentDate | 예 |
$inc | 예 | |
$min | 예 | |
$max | 예 | |
$mul | 예 | |
$rename | 예 | |
$set | 예 | |
$setOnInsert | 예 | |
$unset | 예 | |
배열 업데이트 연산자 | $ | 예 |
$[] | 예 | |
$[identifier] | 예 | |
$addToSet | 예 | |
$pop | 예 | |
$pull | 예 | |
$push | 예 | |
$pullAll | 예 | |
$each | 예 | |
$position | 예 | |
$slice | 예 | |
$sort | 예 | |
비트 업데이트 연산자 | $bit | 예 |
산술 식 연산자 | $abs | 예 |
$add | 예 | |
$ceil | 예 | |
$divide | 예 | |
$exp | 예 | |
$floor | 예 | |
$ln | 예 | |
$log | 예 | |
$log10 | 예 | |
$mod | 예 | |
$multiply | 예 | |
$pow | 예 | |
$round | 예 | |
$sqrt | 예 | |
$subtract | 예 | |
$trunc | 예 | |
배열 식 연산자 | $arrayElemAt | 예 |
$arrayToObject | 예 | |
$concatArrays | 예 | |
$filter | 예 | |
$firstN | 예 | |
$in | 예 | |
$indexOfArray | 예 | |
$isArray | 예 | |
$lastN | 예 | |
$map | 예 | |
$maxN | 아니요 | |
$minN | 아니요 | |
$objectToArray | 예 | |
$range | 예 | |
$reduce | 예 | |
$reverseArray | 예 | |
$size | 예 | |
$slice | 예 | |
$sortArray | 아니요 | |
$zip | 아니요 | |
비트 연산자 | $bitAnd | 예 |
$bitNot | 예 | |
$bitOr | 예 | |
$bitXor | 예 | |
부울 식 연산자 | $and | 예 |
$not | 예 | |
$or | 예 | |
비교 식 연산자 | $cmp | 예 |
$eq | 예 | |
$gt | 예 | |
$gte | 예 | |
$lt | 예 | |
$lte | 예 | |
$ne | 예 | |
사용자 지정 집계 식 연산자 | 지원되지 않습니다. | |
데이터 크기 연산자 | $bsonSize | 예 |
$binarySize | 예 | |
데이터 식 연산자 | $dateAdd | 예 |
$dateDiff | 예 | |
$dateFromParts | 예 | |
$dateFromString | 예 | |
$dateSubtract | 예 | |
$dateToParts | 예 | |
$dateToString | 예 | |
$dateTrunc | 예 | |
$dayOfMonth | 예 | |
$dayOfWeek | 예 | |
$dayOfYear | 예 | |
$hour | 예 | |
$isoDayOfWeek | 예 | |
$isoWeek | 예 | |
$isoWeekYear | 예 | |
$millisecond | 예 | |
$minute | 예 | |
$month | 예 | |
$second | 예 | |
$toDate | 예 | |
$week | 예 | |
$year | 예 | |
리터럴 식 연산자 | $literal | 예 |
기타 연산자 | $getField | 아니요 |
$rand | 예 | |
$sampleRate | 아니요 | |
개체 식 연산자 | $mergeObjects | 예 |
$objectToArray | 예 | |
$setField | 예 | |
집합 식 연산자 | $allElementsTrue | 예 |
$anyElementTrue | 예 | |
$setDifference | 예 | |
$setEquals | 예 | |
$setIntersection | 예 | |
$setIsSubset | 예 | |
$setUnion | 예 | |
문자열 식 연산자 | $concat | 예 |
$dateFromString | 아니요 | |
$dateToString | 예 | |
$indexOfBytes | 예 | |
$indexOfCP | 예 | |
$ltrim | 예 | |
$regexFind | 예 | |
$regexFindAll | 예 | |
$regexMatch | 예 | |
$replaceOne | 예 | |
$replaceAll | 예 | |
$rtrim | 예 | |
$split | 예 | |
$strLenBytes | 예 | |
$strLenCP | 예 | |
$strcasecmp | 예 | |
$substr | 예 | |
$substrBytes | 예 | |
$substrCP | 예 | |
$toLower | 예 | |
$toString | 예 | |
$trim | 예 | |
$toUpper | 예 | |
텍스트 식 연산자 | $meta | 예 |
타임스탬프 식 연산자 | 지원되지 않습니다. | |
삼각 식 연산자 | 지원되지 않습니다. | |
유형 식 연산자 | $convert | 예 |
$isNumber | 예 | |
$toBool | 예 | |
$toDate | 예 | |
$toDecimal | 예 | |
$toDouble | 예 | |
$toInt | 예 | |
$toLong | 예 | |
$toObjectId | 예 | |
$toString | 예 | |
$type | 예 | |
누산기($group, $bucket, $bucketAuto, $setWindowFields) | $accumulator | 아니요 |
$addToSet | 아니요 | |
$avg | 예 | |
$bottom | 아니요 | |
$bottomN | 아니요 | |
$count | 예 | |
$first | 예 | |
$firstN | 예 | |
$last | 예 | |
$lastN | 예 | |
$max | 예 | |
$maxN | 아니요 | |
$median | 아니요 | |
$mergeObjects | 아니요 | |
$min | 예 | |
$percentile | 아니요 | |
$push | 아니요 | |
$stdDevPop | 아니요 | |
$stdDevSamp | 아니요 | |
$sum | 예 | |
$top | 아니요 | |
$topN | 아니요 | |
누산기(다른 단계) | $avg | 아니요 |
$first | 예 | |
$last | 예 | |
$max | 아니요 | |
$median | 아니요 | |
$min | 아니요 | |
$percentile | 아니요 | |
$stdDevPop | 아니요 | |
$stdDevSamp | 아니요 | |
$sum | 아니요 | |
변수 식 연산자 | 지원되지 않습니다. | |
창 연산자 | 지원되지 않습니다. | |
조건식 연산자 | $cond | 예 |
$ifNull | 예 | |
$switch | 예 | |
집계 파이프라인 단계 | $addFields | 예 |
$bucket | 아니요 | |
$bucketAuto | 아니요 | |
$changeStream | 아니요 | |
$changeStreamSplitLargeEvent | 아니요 | |
$collStats | 예 | |
$count | 예 | |
$densify | 아니요 | |
$documents | 아니요 | |
$facet | 예 | |
$fill | 아니요 | |
$geoNear | 아니요 | |
$graphLookup | 예 | |
$group | 예 | |
$indexStats | 예 | |
$limit | 예 | |
$listSampledQueries | 아니요 | |
$listSearchIndexes | 아니요 | |
$listSessions | 아니요 | |
$lookup | 예 | |
$match | 예 | |
$merge | 아니요 | |
$out | 아니요 | |
$planCacheStats | 아니요 | |
$project | 예 | |
$redact | 아니요 | |
$replaceRoot | 예 | |
$replaceWith | 예 | |
$sample | 예 | |
$search | 예 | |
$searchMeta | 예 | |
$set | 예 | |
$setWindowFields | 아니요 | |
$skip | 예 | |
$sort | 예 | |
$sortByCount | 예 | |
$unionWith | 아니요 | |
$unset | 예 | |
$unwind | 예 | |
$shardedDataDistribution | 아니요 | |
$changeStream | 아니요 | |
$currentOp | 예 | |
$listLocalSessions | 아니요 | |
$documents | 아니요 |
인덱스 및 인덱스 속성
Azure Cosmos DB for MongoDB vCore는 다음 인덱스 및 인덱스 속성을 지원합니다.
참고 항목
고유 인덱스를 만들면 빌드 프로세스의 전체 기간 동안 컬렉션에 대한 배타적 잠금이 생성됩니다. 이렇게 하면 작업이 완료될 때까지 컬렉션에 대한 읽기 및 쓰기 작업이 차단됩니다.
인덱스
명령 | 지원됨 |
단일 필드 인덱스 | 예 |
복합 인덱스 | 예 |
Multikey 인덱스 | 예 |
텍스트 인덱스 | 예 |
지리 공간적 인덱스 | 프라이빗 미리 보기* |
해시된 인덱스 | 예 |
벡터 인덱스(Cosmos DB에서만 사용 가능) | 예, 벡터 검색 사용 |
인덱스 속성
명령 | 지원됨 |
TTL | 예 |
고유 | 예 |
부분 | 예 |
대/소문자 구분 안 함 | 아니요 |
스파스 | 예 |
배경 | 예 |