evento
17/03, 21 - 21/03, 10
Junte-se à série meetup para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registe-se agoraEste browser já não é suportado.
Atualize para o Microsoft Edge para tirar partido das mais recentes funcionalidades, atualizações de segurança e de suporte técnico.
APLICA-SE A: MongoDB
O Azure Cosmos DB é o serviço de banco de dados multimodelo distribuído globalmente pela Microsoft. O Azure Cosmos DB oferece várias APIs de banco de dados. Você pode se comunicar com o Azure Cosmos DB para MongoDB usando qualquer um dos drivers de cliente MongoDB de código aberto. O Azure Cosmos DB para MongoDB dá suporte ao uso de drivers de cliente existentes aderindo ao protocolo de fio MongoDB.
Ao usar o Azure Cosmos DB para MongoDB, você pode aproveitar os benefícios do MongoDB aos quais está acostumado, com todos os recursos corporativos que o Azure Cosmos DB oferece: distribuição global, fragmentação automática, garantias de disponibilidade e latência, criptografia em repouso, backups e muito mais.
Os operadores suportados e quaisquer limitações ou exceções estão listados neste artigo. Qualquer driver de cliente que compreenda esses protocolos deve ser capaz de se conectar ao Azure Cosmos DB para MongoDB. Quando você cria contas do Azure Cosmos DB para MongoDB, a versão 3.6+ de contas tem um ponto de extremidade no formato *.mongo.cosmos.azure.com
. A versão 3.2 das contas tem um ponto de extremidade no formato *.documents.azure.com
.
Nota
Este artigo lista apenas os comandos de servidor suportados e exclui funções de wrapper do lado do cliente. As funções de wrapper do lado do cliente, como deleteMany()
e updateMany()
usam internamente os delete()
comandos e update()
server. As funções que usam comandos de servidor com suporte são compatíveis com o Azure Cosmos DB para MongoDB.
O Azure Cosmos DB para MongoDB fornece suporte abrangente para construções de linguagem de consulta MongoDB. Nas seções a seguir, você pode encontrar a lista detalhada de operações, operadores, estágios, comandos e opções atualmente suportados.
O Azure Cosmos DB para MongoDB dá suporte aos seguintes comandos de banco de dados.
Comando | Suportado |
---|---|
change streams |
Sim |
delete |
Sim |
eval |
No |
find |
Sim |
findAndModify |
Sim |
getLastError |
Sim |
getMore |
Sim |
getPrevError |
No |
insert |
Sim |
parallelCollectionScan |
No |
resetError |
No |
update |
Sim |
Nota
As transações de vários documentos são suportadas apenas dentro de uma única coleção não fragmentada. As transações de vários documentos entre coleções e estilhaços cruzados ainda não são suportadas na API para o MongoDB.
Comando | Suportado |
---|---|
abortTransaction |
Sim |
commitTransaction |
Sim |
Comando | Suportado |
---|---|
authenticate |
Sim |
getnonce |
Sim |
logout |
Sim |
Comando | Suportado |
---|---|
cloneCollectionAsCapped |
No |
collMod |
No |
connectionStatus |
No |
convertToCapped |
No |
copydb |
No |
create |
Sim |
createIndexes |
Sim |
currentOp |
Sim |
drop |
Sim |
dropDatabase |
Sim |
dropIndexes |
Sim |
filemd5 |
Sim |
killCursors |
Sim |
killOp |
No |
listCollections |
Sim |
listDatabases |
Sim |
listIndexes |
Sim |
reIndex |
Sim |
renameCollection |
No |
Comando | Suportado |
---|---|
buildInfo |
Sim |
collStats |
Sim |
connPoolStats |
No |
connectionStatus |
No |
dataSize |
No |
dbHash |
No |
dbStats |
Sim |
explain |
Sim |
features |
No |
hostInfo |
Sim |
listDatabases |
Sim |
listCommands |
No |
profiler |
No |
serverStatus |
No |
top |
No |
whatsmyuri |
Sim |
O Azure Cosmos DB para MongoDB suporta os seguintes comandos de agregação.
Comando | Suportado |
---|---|
aggregate |
Sim |
count |
Sim |
distinct |
Sim |
mapReduce |
No |
Comando | Suportado |
---|---|
addFields |
Sim |
bucket |
No |
bucketAuto |
No |
changeStream |
Sim |
collStats |
No |
count |
Sim |
currentOp |
No |
facet |
Sim |
geoNear |
Sim |
graphLookup |
No |
group |
Sim |
indexStats |
No |
limit |
Sim |
listLocalSessions |
No |
listSessions |
Não |
lookup |
Parcial |
match |
Sim |
merge |
Sim |
out |
Sim |
planCacheStats |
Sim |
project |
Sim |
redact |
Sim |
regexFind |
Sim |
regexFindAll |
Sim |
regexMatch |
Sim |
replaceRoot |
Sim |
replaceWith |
Sim |
sample |
Sim |
set |
Sim |
skip |
Sim |
sort |
Sim |
sortByCount |
Sim |
unset |
Sim |
unwind |
Sim |
Nota
A $lookup
agregação ainda não suporta o recurso de subconsultas não correlacionadas introduzido na versão 3.6 do servidor. Se você tentar usar o $lookup
operador com os campos andpipeline
, uma mensagem de erro indicando que let
não é suportado let
será exibida.
Comando | Suportado |
---|---|
and |
Sim |
not |
Sim |
or |
Sim |
Comando | Suportado |
---|---|
convert |
Sim |
toBool |
Sim |
toDate |
Sim |
toDecimal |
Sim |
toDouble |
Sim |
toInt |
Sim |
toLong |
Sim |
toObjectId |
Sim |
toString |
Sim |
Comando | Suportado |
---|---|
setEquals |
Sim |
setIntersection |
Sim |
setUnion |
Sim |
setDifference |
Sim |
setIsSubset |
Sim |
anyElementTrue |
Sim |
allElementsTrue |
Sim |
Nota
A API para MongoDB não suporta expressões de comparação que tenham um literal de matriz na consulta.
Comando | Suportado |
---|---|
cmp |
Sim |
eq |
Sim |
gt |
Sim |
gte |
Sim |
lt |
Sim |
lte |
Sim |
ne |
Sim |
in |
Sim |
nin |
Sim |
Comando | Suportado |
---|---|
abs |
Sim |
add |
Sim |
ceil |
Sim |
divide |
Sim |
exp |
Sim |
floor |
Sim |
ln |
Sim |
log |
Sim |
log10 |
Sim |
mod |
Sim |
multiply |
Sim |
pow |
Sim |
round |
Sim |
sqrt |
Sim |
subtract |
Sim |
trunc |
Sim |
Comando | Suportado |
---|---|
acos |
Sim |
acosh |
Sim |
asin |
Sim |
asinh |
Sim |
atan |
Sim |
atan2 |
Sim |
atanh |
Sim |
cos |
Sim |
cosh |
Sim |
degreesToRadians |
Sim |
radiansToDegrees |
Sim |
sin |
Sim |
sinh |
Sim |
tan |
Sim |
tanh |
Sim |
Comando | Suportado |
---|---|
concat |
Sim |
indexOfBytes |
Sim |
indexOfCP |
Sim |
ltrim |
Sim |
rtrim |
Sim |
trim |
Sim |
split |
Sim |
strLenBytes |
Sim |
strLenCP |
Sim |
strcasecmp |
Sim |
substr |
Sim |
substrBytes |
Sim |
substrCP |
Sim |
toLower |
Sim |
toUpper |
Sim |
Comando | Suportado |
---|---|
meta |
Não |
Comando | Suportado |
---|---|
arrayElemAt |
Sim |
arrayToObject |
Sim |
concatArrays |
Sim |
filter |
Sim |
indexOfArray |
Sim |
isArray |
Sim |
objectToArray |
Sim |
range |
Sim |
reverseArray |
Sim |
reduce |
Sim |
size |
Sim |
slice |
Sim |
zip |
Sim |
in |
Sim |
Comando | Suportado |
---|---|
map |
Sim |
let |
Sim |
Comando | Suportado |
---|---|
$$CLUSTERTIME |
Sim |
$$CURRENT |
Sim |
$$DESCEND |
Sim |
$$KEEP |
Sim |
$$NOW |
Sim |
$$PRUNE |
Sim |
$$REMOVE |
Sim |
$$ROOT |
Sim |
Comando | Suportado |
---|---|
literal |
Sim |
Comando | Suportado |
---|---|
dayOfYear |
Sim |
dayOfMonth |
Sim |
dayOfWeek |
Sim |
year |
Sim |
month |
Sim |
week |
Sim |
hour |
Sim |
minute |
Sim |
second |
Sim |
millisecond |
Sim |
dateToString |
Sim |
isoDayOfWeek |
Sim |
isoWeek |
Sim |
dateFromParts |
Sim |
dateToParts |
Sim |
dateFromString |
Sim |
isoWeekYear |
Sim |
Comando | Suportado |
---|---|
cond |
Sim |
ifNull |
Sim |
switch |
Sim |
Comando | Suportado |
---|---|
type |
Sim |
Comando | Suportado |
---|---|
sum |
Sim |
avg |
Sim |
first |
Sim |
last |
Sim |
max |
Sim |
min |
Sim |
push |
Sim |
addToSet |
Sim |
stdDevPop |
Sim |
stdDevSamp |
Sim |
Comando | Suportado |
---|---|
mergeObjects |
Sim |
O Azure Cosmos DB para MongoDB dá suporte a documentos codificados no formato BSON do MongoDB. As versões 4.0 e posteriores (4.0+) melhoram o uso interno deste formato para melhorar o desempenho e reduzir custos. Os documentos que são escritos ou atualizados através de um ponto de extremidade executando 4.0+ se beneficiam dessa otimização.
Em um cenário de atualização, os documentos que foram gravados antes da atualização para a versão 4.0+ não se beneficiarão do desempenho aprimorado até que sejam atualizados por meio de uma operação de gravação por meio do ponto de extremidade 4.0+.
O suporte de documentos de 16 MB aumenta o limite de tamanho dos seus documentos de 2 MB para 16 MB. Este limite aplica-se apenas às coleções criadas após a ativação desta funcionalidade. Quando esta funcionalidade está ativada para a sua conta de base de dados, não pode ser desativada.
Para habilitar o suporte a documentos de 16 MB, altere a configuração na guia Recursos do recurso no portal do Azure ou adicione programaticamente o EnableMongo16MBDocumentSupport
recurso.
Recomendamos que você habilite a Repetição do lado do servidor e evite o uso de índices curinga para garantir que as solicitações em documentos maiores sejam bem-sucedidas. Aumentar seu banco de dados ou unidades de solicitação de coleta também pode ajudar no desempenho.
Comando | Suportado |
---|---|
Double |
Sim |
String |
Sim |
Object |
Sim |
Array |
Sim |
Binary Data |
Sim |
ObjectId |
Sim |
Boolean |
Sim |
Date |
Sim |
Null |
Sim |
32-bit Integer (int) |
Sim |
Timestamp |
Sim |
64-bit Integer (long) |
Sim |
MinKey |
Sim |
MaxKey |
Sim |
Decimal128 |
Sim |
Regular Expression |
Sim |
JavaScript |
Sim |
JavaScript (with scope) |
Sim |
Undefined |
Sim |
O Azure Cosmos DB para MongoDB dá suporte aos seguintes comandos de índice e propriedades de índice.
Comando | Suportado |
---|---|
Single Field Index |
Sim |
Compound Index |
Sim |
Multikey Index |
Sim |
Text Index |
No |
2dsphere |
Sim |
2d Index |
No |
Hashed Index |
Não |
Comando | Suportado |
---|---|
TTL |
Sim |
Unique |
Sim |
Partial |
Suportado apenas para índices exclusivos |
Case Insensitive |
No |
Sparse |
No |
Background |
Sim |
O Azure Cosmos DB para MongoDB suporta os seguintes operadores.
Comando | Suportado |
---|---|
or |
Sim |
and |
Sim |
not |
Sim |
nor |
Sim |
Comando | Suportado |
---|---|
exists |
Sim |
type |
Sim |
Comando | Suportado |
---|---|
expr |
Sim |
jsonSchema |
No |
mod |
Sim |
regex |
Sim |
text |
Não (Não suportado. Use $regex em vez disso.) |
where |
Não |
Nas $regex
consultas, as expressões ancoradas à esquerda permitem a pesquisa de índice. No entanto, o uso do modificador (indiferenciação de maiúsculas i
e minúsculas) e do m
modificador (multilinha) faz com que a coleção seja verificada em todas as expressões.
Quando houver necessidade de incluir $
ou |
, é melhor criar duas (ou mais) $regex
consultas.
Por exemplo, altere a seguinte consulta original:
find({x:{$regex: /^abc$/})
Para esta consulta:
find({x:{$regex: /^abc/, x:{$regex:/^abc$/}})
A primeira parte da consulta modificada usa o índice para restringir a pesquisa a documentos que começam com ^abc
. A segunda parte da consulta corresponde às entradas exatas. O operador de barra (|
) atua como uma função "ou". A consulta find({x:{$regex: /^abc |^def/})
corresponde aos documentos em que o campo x
tem valores que começam com abc
ou def
. Para usar o índice, recomendamos que você divida a consulta em duas consultas diferentes que são unidas $or
pelo operador: find( {$or : [{x: $regex: /^abc/}, {$regex: /^def/}] })
.
Comando | Suportado |
---|---|
all |
Sim |
elemMatch |
Sim |
size |
Sim |
Comando | Suportado |
---|---|
comment |
Sim |
Comando | Suportado |
---|---|
elemMatch |
Sim |
meta |
No |
slice |
Sim |
Comando | Suportado |
---|---|
inc |
Sim |
mul |
Sim |
rename |
Sim |
setOnInsert |
Sim |
set |
Sim |
unset |
Sim |
min |
Sim |
max |
Sim |
currentDate |
Sim |
Comando | Suportado |
---|---|
$ |
Sim |
$[] |
Sim |
$[\<identifier\>] |
Sim |
addToSet |
Sim |
pop |
Sim |
pullAll |
Sim |
pull |
Sim |
push |
Sim |
pushAll |
Sim |
Comando | Suportado |
---|---|
each |
Sim |
slice |
Sim |
sort |
Sim |
position |
Sim |
Comando | Suportado |
---|---|
bit |
Sim |
bitsAllSet |
No |
bitsAnySet |
No |
bitsAllClear |
No |
bitsAnyClear |
Não |
Operador | Suportado |
---|---|
$geoWithin |
Sim |
$geoIntersects |
Sim |
$near |
Sim |
$nearSphere |
Sim |
$geometry |
Sim |
$minDistance |
Sim |
$maxDistance |
Sim |
$center |
No |
$centerSphere |
No |
$box |
No |
$polygon |
Não |
Quando você usa a findOneAndUpdate
operação, as operações de classificação em um único campo são suportadas. Não há suporte para operações de classificação em vários campos.
A API para MongoDB suporta vários índices para permitir a classificação em vários campos, melhorar o desempenho da consulta e impor exclusividade.
A criptografia de campo no nível do cliente é um recurso de driver e é compatível com a API do MongoDB. A criptografia explícita, na qual o driver criptografa explicitamente cada campo quando ele é gravado, é suportada. A encriptação automática não é suportada. A desencriptação explícita e a desencriptação automática são suportadas.
O mongocryptd
não deve ser executado porque não é necessário para executar nenhuma das operações suportadas.
O Azure Cosmos DB suporta GridFS através de qualquer controlador Mongo compatível com GridFS.
O Azure Cosmos DB suporta a replicação nativa e automática nas camadas inferiores. Essa lógica também é estendida para alcançar replicação global de baixa latência. O Azure Cosmos DB não oferece suporte a comandos de replicação manual.
O recurso de gravação reprovável permite que os drivers MongoDB tentem automaticamente certas operações de gravação. O recurso resulta em requisitos mais rigorosos para determinadas operações, que correspondem aos requisitos do protocolo MongoDB. Com esse recurso habilitado, as operações de atualização, incluindo exclusões, em coleções fragmentadas exigem que a chave de estilhaço seja incluída no filtro de consulta ou instrução de atualização.
Por exemplo, com uma coleção fragmentada que é fragmentada "country"
na chave, para excluir todos os documentos que têm o campo "city" = "NYC"
, o aplicativo precisa executar a operação para todos os valores de chave de estilhaço ("country"
) se o recurso de gravação reprovável estiver habilitado.
db.coll.deleteMany({"country": "USA", "city": "NYC"})
- Sucessodb.coll.deleteMany({"city": "NYC"})
- Falha com erro ShardKeyNotFound(61)Nota
As gravações retryable não suportam gravações não ordenadas em massa no momento. Se você quiser executar gravações em massa com gravações retryable habilitadas, execute gravações ordenadas em massa.
Para habilitar o recurso, adicione o recurso EnableMongoRetryableWrites à sua conta de banco de dados. Esse recurso também pode ser habilitado na guia Recursos no portal do Azure.
O Azure Cosmos DB suporta a fragmentação automática do lado do servidor. Ele gerencia automaticamente a criação, o posicionamento e o balanceamento de estilhaços. O Azure Cosmos DB não oferece suporte a comandos de fragmentação manual, o que significa que você não precisa invocar comandos como addShard
, balancerStart
e moveChunk
. Você precisa especificar a chave de fragmento somente quando criar os contêineres ou consultar os dados.
O Azure Cosmos DB ainda não oferece suporte a comandos de sessões do lado do servidor.
O Azure Cosmos DB dá suporte a um TTL (Time to Live) baseado no carimbo de data/hora do documento. Você pode habilitar o TTL para uma coleção no portal do Azure.
Esse recurso fornece a capacidade de definir um TTL personalizado em qualquer campo de uma coleção.
Em uma coleção que tenha TTL habilitado em um campo:
Os tipos aceitáveis são o tipo de dados BSON e os tipos numéricos (inteiro, longo ou duplo), que serão interpretados como um carimbo de tempo de milissegundos Unix para determinar a expiração.
Se o campo TTL for uma matriz, o menor elemento da matriz que é de um tipo aceitável é considerado para expiração do documento.
Se o campo TTL estiver ausente de um documento, o documento não expirará.
Se o campo TTL não for um tipo aceitável, o documento não expirará.
Apenas um campo em uma coleção pode ter um TTL definido nele.
Com um conjunto de campos TTL personalizado, o campo não pode ser usado para expiração do \_ts
documento.
Você não pode usar o \_ts
campo adicionalmente.
Você pode habilitar um TTL personalizado atualizando o EnableTtlOnCustomPath
recurso para a conta. Saiba como configurar recursos.
Para configurar o TTL, execute este comando: db.coll.createIndex({"YOUR_CUSTOM_TTL_FIELD":1}, {expireAfterSeconds: 10})
As transações de vários documentos são suportadas dentro de uma coleção não fragmentada. Não há suporte para transações de vários documentos em coleções ou em coleções fragmentadas. O tempo limite para transações é de 5 segundos fixos.
O Azure Cosmos DB ainda não oferece suporte a usuários e funções. No entanto, o Azure Cosmos DB dá suporte ao controle de acesso baseado em função do Azure (Azure RBAC) e senhas e chaves de leitura-gravação e somente leitura que podem ser obtidas por meio do portal do Azure (na página Cadeias de Conexão).
Alguns aplicativos dependem de uma preocupação de gravação, que especifica o número de respostas necessárias durante uma operação de gravação. Devido à forma como o Azure Cosmos DB lida com a replicação em segundo plano, todas as gravações são automaticamente Quorum por padrão. Qualquer problema de gravação especificado pelo código do cliente é ignorado. Saiba como usar os níveis de consistência para maximizar a disponibilidade e o desempenho.
evento
17/03, 21 - 21/03, 10
Junte-se à série meetup para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registe-se agoraFormação
Módulo
Introdução à API do MongoDB no Azure Cosmos DB - Training
Aprenda as noções básicas do Azure Cosmos DB para MongoDB.
Certificação
Certificado pela Microsoft: Azure Cosmos DB Developer Specialty - Certifications
Escreva consultas eficientes, crie políticas de indexação, gerencie e provisione recursos na API SQL e SDK com o Microsoft Azure Cosmos DB.
Documentação
Recursos e sintaxe suportados da versão do servidor 4.0 no Azure Cosmos DB para MongoDB
Saiba mais sobre os recursos e a sintaxe suportados da versão de servidor do Azure Cosmos DB para MongoDB 4.0. Saiba mais sobre os comandos de banco de dados, suporte à linguagem de consulta, tipos de dados, comandos de pipeline de agregação e operadores suportados.
Recursos e sintaxe suportados do Azure Cosmos DB para MongoDB (versão 3.6)
Saiba mais sobre os recursos e a sintaxe suportados do Azure Cosmos DB para MongoDB (versão 3.6).
Recursos e sintaxe suportados da versão do servidor 7.0 no Azure Cosmos DB para MongoDB
Saiba mais sobre os recursos e a sintaxe suportados da versão de servidor do Azure Cosmos DB para MongoDB 7.0. Saiba mais sobre comandos de banco de dados suportados, suporte a linguagem de consulta, tipos de dados, comandos de pipeline de agregação e operadores.