Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

$toObjectId (agregação)

Nesta página

  • Definição
  • Comportamento
  • Exemplo
$toObjectId

Converte um valor em um ObjectId(). Se o valor não puder ser convertido em um ObjectId, $toObjectId apresentará erro. Se o valor for nulo ou estiver ausente, $toObjectId retornará nulo.

$toObjectId tem a seguinte sintaxe:

{
$toObjectId: <expression>
}

O $toObjectId usa qualquer expressãoválida.

O $toObjectId é uma abreviatura para a seguinte expressão $convert:

{ $convert: { input: <expression>, to: "objectId" } }

Dica

Veja também:

A tabela a seguir lista os tipos de entrada que podem ser convertidos para um ObjectId:

Tipo de entrada
Comportamento
String

Retorna um ObjectId para a string hexadecimal de comprimento 24.

Não é possível converter um valor de string que não seja uma string hexadecimal de comprimento 24.

A tabela a seguir lista alguns exemplos de conversão em data:

Exemplo
Resultados
{$toObjectId: "5ab9cbfa31c2ab715d42129e"}
ObjectId("5ab9cbfa31c2ab715d42129e")
{$toObjectId: "5ab9cbfa31c2ab715d42129"}
Erro

Crie uma collection orders com os seguintes documentos:

db.orders.insertMany( [
{ _id: "5ab9cbe531c2ab715d42129a", item: "apple", qty: 10 },
{ _id: ObjectId("5ab9d0b831c2ab715d4212a8"), item: "pie", qty: 5 },
{ _id: ObjectId("5ab9d2d331c2ab715d4212b3"), item: "ice cream", qty: 20 },
{ _id: "5ab9e16431c2ab715d4212b4", item: "almonds", qty: 50 },
] )

A seguinte operação de aggregation na collection orders converte _id para ObjectId antes de classificar pelo valor:

// Define stage to add convertedId field with converted _id value
idConversionStage = {
$addFields: {
convertedId: { $toObjectId: "$_id" }
}
};
// Define stage to sort documents by the converted qty values
sortStage = {
$sort: { "convertedId": -1 }
};
db.orders.aggregate( [
idConversionStage,
sortStage
] )

A operação retorna os seguintes documentos:

{
_id: '5ab9e16431c2ab715d4212b4',
item: 'almonds',
qty: 50,
convertedId: ObjectId("5ab9e16431c2ab715d4212b4")
},
{
_id: ObjectId("5ab9d2d331c2ab715d4212b3"),
item: 'ice cream',
qty: 20,
convertedId: ObjectId("5ab9d2d331c2ab715d4212b3")
},
{
_id: ObjectId("5ab9d0b831c2ab715d4212a8"),
item: 'pie',
qty: 5,
convertedId: ObjectId("5ab9d0b831c2ab715d4212a8")
},
{
_id: '5ab9cbe531c2ab715d42129a',
item: 'apple',
qty: 10,
convertedId: ObjectId("5ab9cbe531c2ab715d42129a")
}

Observação

Se a operação de conversão encontrar um erro, a operação de aggregation interromperá e exibirá um erro. Para substituir esse comportamento, use $convert em vez disso.

Voltar

$toLong