Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Javascript no lado do servidor

Importante

O Map-reduce foi descontinuado a partir do MongoDB 5.0.

O MongoDB fornece os seguintes operadores que executam a execução do lado do servidor do código JavaScript:

  • $where operador que avalia uma expressão ou função JavaScript para realizar queries por documentos.

  • $accumulator e $function operações de agregação que permitem aos usuários definir expressões de agregação personalizadas.

Você pode especificar um arquivo JavaScript (.js) para mongosh para executar o arquivo no servidor. Esta é uma boa técnica para executar o trabalho administrativo em lote. Quando você executa mongosh no servidor, conectando-se por meio da interface localhost, a conexão é rápida e com baixa latência.

Para desabilitar toda a execução do lado do servidor do JavaScript para mongod ou mongos, você pode:

Embora os métodos do lado do servidor usem JavaScript, a maioria das interações com o MongoDB não usa JavaScript, mas um driver idiomático na linguagem do aplicação de interação.

Consulte o método individual ou a documentação do operador para obter qualquer informação sobre concorrência. Consulte também a tabela de concorrência.

O MongoDB 6.0 atualiza o mecanismo JavaScript interno usado para expressões JavaScript, $accumulator, $function e $where do lado do servidor e do MozJS-60 para o MozJS-91. Várias funções de array e string de caracteres não padrão obsoletas que existiam no MozJS-60 são removidas no MozJS-91.

A partir do MongoDB 9.0, o JavaScript do lado do servidor não está disponível na arquitetura ppc64le. Os binários mongod emongos para ppc64le não incluem um mecanismo JavaScript. Como resultado, $where, $accumulator,$function e as operações de map-reduce falham nessa arquitetura. Você não pode ativar o JavaScript do lado do servidor no ppc64le com uma definição de arquivo de configuração ou uma opção de linha de comando.

Para executar essas operações, use um sistema em uma arquitetura que inclua um mecanismo JavaScript. Você também pode reescrever as operações para usar estágios e operadores do pipeline de agregação que não exigem JavaScript do lado do servidor.

A partir do MongoDB 9.0, o JavaScript do lado do servidor avalia as operações locais Date em UTC, independentemente do zona horário do host mongod. Todos os getters locais como Date.prototype.getHours(), construtores e setters locais e operações que convertem uma data em uma string usam UTC. O valor de data BSON armazenado não é alterado, assim como Date.prototype.getTime(), Date.prototype.toISOString() e os métodos getUTC*().

Para avaliar datas em um zona horário nomeado, use um operador de data de agregação como $hour com um argumento timezone explícito. Evite métodos Date locais em JavaScript. Para obter orientação de atualização, consulte Alterações de compatibilidade no MongoDB 9.0.

Se você usar o SELinux, qualquer operação do MongoDB que exija JavaScript no lado do servidor resultará em um erro de segfault. Para desabilitar a execução do JavaScript do lado do servidor, consulte Desabilitar JavaScript do lado do servidor.