Docs Menu
Docs Home
/ /
Operadores de tuberías de agregación

$toObjectId (agregación)

$toObjectId

Convierte un valor en un ObjectId(). Si el valor no se puede convertir a un ObjectId, se$toObjectId genera$toObjectId un error en. Si el valor es nulo o falta, devuelve un valor nulo.

$toObjectId tiene la siguiente sintaxis:

{
$toObjectId: <expression>
}

El toma $toObjectId cualquier expresión válida.

$toObjectId es una abreviatura de la siguiente $convert expresión:

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

Tip

La siguiente tabla enumera los tipos de entrada que se pueden convertir a un ObjectId:

Tipo de entrada
Comportamiento

String

Devuelve un ObjectId para la string hexadecimal de 24 caracteres.

No se puede convertir un valor de cadena que no sea una cadena hexadecimal de longitud 24.

La siguiente tabla enumera algunos ejemplos de conversión a fecha:

Ejemplo
Resultados

{$toObjectId: "5ab9cbfa31c2ab715d42129e"}

ObjectId("5ab9cbfa31c2ab715d42129e")

{$toObjectId: "5ab9cbfa31c2ab715d42129"}

Error

Cree una colección orders con los siguientes 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 },
] )

La siguiente operación de agregación en la colección orders convierte _id en ObjectId antes de ordenar por el 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
] )

La operación devuelve los siguientes 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")
}

Nota

Si la operación de conversión detecta un error, la operación de agregación se detiene y genera un error. Para anular este comportamiento,$convert utilice.

Volver

$toLong

En esta página