Javascript no lado do servidor
Nesta página
Importante
JavaScript do lado do servidor obsoleto
A partir do MongoDB 8.0, as funções JavaScript do lado do servidor ($accumulator
, $function
, $where
) estão obsoletas. O MongoDB registra um aviso quando você executa essas funções.
O Map-reduce foi descontinuado a partir do MongoDB 5.0.
O MongoDB fornece os seguintes comandos, métodos e operador que executam a execução do lado do servidor do código JavaScript:
mapReduce
e omongosh
métododb.collection.mapReduce()
correspondente . Para mais informações, consulte Redução de Mapa.$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ê também pode especificar um arquivo JavaScript para mongosh
ser executado no servidor. Para obter mais informações, consulte Execução de arquivos .js
por meio de uma instância mongosh
Instância no servidor
Observação
JavaScript no MongoDB
Embora estes métodos utilizem JavaScript, a maioria das interações com MongoDB não utilizam JavaScript, mas utilizam um driver automático na linguagem da aplicação de interação.
Se você não precisar realizar a execução do código JavaScript no lado do servidor, consulte Desabilitar execução do lado do servidor do JavaScript.
Observação
Se você estiver usando o SELinux, qualquer operação do MongoDB que exija JavaScript no lado do servidor resultará em erros de segfault. Desativar execução de JavaScript no servidor descreve como desativar a execução de JavaScript no servidor.
Executando .js
arquivos do por uma mongosh
instância do no servidor
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.
Desabilitar a execução de JavaScript no servidor
Você pode desabilitar toda a execução do JavaScript do lado do servidor:
Para uma instância
mongod
, passando a opção--noscripting
na linha de comando ou definindosecurity.javascriptEnabled
como false no arquivo de configuração.Para uma instância
mongos
, passando a opção--noscripting
na linha de comando ou definindosecurity.javascriptEnabled
como false no arquivo de configuração.
Comportamento
Concurrency
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.
Funções de array e string não suportadas
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.
Para obter a lista completa das funções de array e string removidas, consulte as notas de compatibilidade da versão 6.0.