Docs Menu
Docs Home
/ /
Operadores de pipeline de agregación

$toString (agregación)

$toString

Convierte un valor a una string. Si el valor no puede convertirse en una string, $toString errores. Si el valor es nulo o falta, $toString devuelve nulo.

$toString tiene la siguiente sintaxis:

{
$toString: <expression>
}

El $toString acepta cualquier expresión.

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

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

Tip

  • $convert

  • $dateToString

La siguiente tabla enumera los tipos de entrada que se pueden convertir en una string:

Tipo de entrada
Comportamiento

Booleano

Devuelve el valor booleano como una string.

Double

Devuelve el valor double como una string.

Decimal

Devuelve el valor decimal como una string.

entero

Devuelve el valor entero como una string.

Long

Devuelve el valor largo como una string.

ObjectId

Devuelve el valor de ObjectId como una string hexadecimal.

String

Sin-op. Devuelve el valor de string.

fecha

Devuelve la fecha como una string.

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

Ejemplo
Resultados

{$toString: true}

"true"

{$toString: false}

"falso"

{$toString: 2.5}

"2,5"

{$toString: Int32(2)}

"2"

{$toString: Long(1000)}

"1000"

{$toString: ObjectId("5ab9c3da31c2ab715d421285")}

"5ab9c3da31c2ab715d421285"

{$toString: ISODate("2018-03-27T16:58:51.538Z")}

"2018-03-27T16:58:51.538Z"

Cree una colección orders con los siguientes documentos:

db.orders.insertMany( [
{ _id: 1, item: "apple", qty: 5, zipcode: 93445 },
{ _id: 2, item: "almonds", qty: 2, zipcode: "12345-0030" },
{ _id: 3, item: "peaches", qty: 5, zipcode: 12345 },
] )

La siguiente operación de agregación en la colección orders convierte el zipcode en string antes de ordenar por el valor de la string:

// Define stage to add convertedZipCode field with the converted zipcode value
zipConversionStage = {
$addFields: {
convertedZipCode: { $toString: "$zipcode" }
}
};
// Define stage to sort documents by the converted zipcode
sortStage = {
$sort: { "convertedZipCode": 1 }
};
db.orders.aggregate( [
zipConversionStage,
sortStage
] )

La operación devuelve los siguientes documentos:

{
_id: 3,
item: 'peaches',
qty: 5,
zipcode: 12345,
convertedZipCode: '12345'
},
{
_id: 2,
item: 'almonds',
qty: 2,
zipcode: '12345-0030',
convertedZipCode: '12345-0030'
},
{
_id: 1,
item: 'apple',
qty: 5,
zipcode: 93445,
convertedZipCode: '93445'
}

Nota

Si la operación de conversión encuentra un error, la operación de agregación se detiene y genera un error. Para anular este comportamiento, use $convert en su lugar.

Volver

$topN

En esta página