Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

$toObjectId (operador de expresión)

$toObjectId

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

$toObjectId tiene la siguiente sintaxis:

{
$toObjectId: <expression>
}

El $toObjectId toma cualquier expresión.

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

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

Tip

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

Tipo de entrada
Comportamiento

String

Devuelve un ObjectId para la string hexadecimal de 24 caracteres.

No puedes convertir un valor de string que no sea una string 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 el _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