$toObjectId (Converter para ObjectId)

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

$toObjectId (Converter para ObjectId)

$toObjectId converte uma string hexadecimal de 24 caracteres em um ObjectId, a conversão mais comum para junções. Usos típicos: converter IDs em string importados de CSV ou APIs em ObjectIds para $lookup, ou comparar valores de _id em string com ObjectIds em $match. A string precisa ser um literal ObjectId válido ou a conversão gera erro; null permanece null. Prefira $convert com onError para proteger entrada inválida.

CategoriaConjunto, Condição e Conversão
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ $toObjectId: <expressão> }

⚙️ Parâmetros

expressãoUma string hexadecimal de 24 caracteres.

Retorno:Um ObjectId; null quando a entrada é null

▶ Exemplo

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

// $toObjectId: converter um ID em string para junção
db.orders.aggregate([
  { $project: {
      uid: { $toObjectId: '$userIdStr' }
  } }
])

Saída:

{ '_id': 1, 'uid': { '$oid': '64b7f1c2e4b0a1b2c3d4e5f6' } }

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QO que acontece com uma string inválida?
AGera erro; onError de $convert retorna um valor de reserva em vez disso.
QPor que meu $lookup não encontra correspondência?
AGeralmente é uma incompatibilidade de tipo — um lado string, o outro ObjectId; unifique com $toObjectId antes.
QE uma string vazia?
AEla gera erro em vez de resultar em null; trate com $ifNull antes.
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%