JavaScript (Código no Servidor)

Última atualização: 2026-10-09

JavaScript (Código no Servidor)

O tipo JavaScript armazena código JS em um documento, executado no servidor por meio de `$where` (executado por documento). `$where` não pode usar índices e é lento — adequado apenas para coleções pequenas ou lógica que nenhum operador de consulta consegue expressar. Desde o MongoDB 8.0, o JavaScript no servidor é desabilitado por padrão e precisa de uma flag explícita de inicialização; prefira `$expr` ou o operador de agregação `$function` em código novo.

CategoriaTipos BSON
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ $where: "this.price * this.qty > 100" }
{ $expr: { $gt: [{ $multiply: ["$price", "$qty"] }, 100] } }

Retorno:$where retorna documentos que passam no predicado; valores JS armazenados são strings de código

▶ Exemplo

Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):

// JavaScript: $where no servidor
use shop
db.orders.find({ $where: 'this.price * this.qty > 1000' })

Saída:

// Pedidos onde price * qty > 1000 (varredura de coleção)

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QPor que $where é lento?
AEle invoca um interpretador JS por documento, não pode usar índices e força uma varredura completa.
QO $where ainda funciona no MongoDB 8.0?
ADesabilitado por padrão; inicie o servidor com --enableJavaScriptExecution para religá-lo.
QComo expresso comparações complexas entre campos?
AUse $expr com operadores de agregação como $multiply — otimizável e parcialmente amigável a índices.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%