Docs Menu
Docs Home
/ /

$toString (agregación)

$toString

Convierte un valor en una cadena. Si el valor no se puede convertir en una cadena, $toString errores. Si el valor es nulo o falta, devuelve$toString nulo.

$toString tiene la siguiente sintaxis:

{
$toString: <expression>
}

El toma cualquier valor $toString válido expresión.

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

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

Tip

  • $convert

  • $dateToString

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

Tipo de entrada
Comportamiento

BinData

Si es un UUID, devuelve el UUID como una cadena. De lo contrario, devuelve el valor de BinData la64 cadena codificada base.

Booleano

Devuelve el valor booleano como una cadena.

Double

Devuelve el valor doble como una cadena.

Decimal

Devuelve el valor decimal como una cadena.

entero

Devuelve el valor entero como una cadena.

Long

Devuelve el valor largo como una cadena.

ObjectId

Devuelve el valor de ObjectId como una cadena hexadecimal.

String

No-op. Devuelve el valor de la cadena.

fecha

Devuelve la fecha como una cadena.

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"

{ $toString: BinData(4, "hn3f") }

"hn3f"

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 zipcode en una cadena antes de ordenar por el valor de la cadena:

// 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 detecta un error, la operación de agregación se detiene y genera un error. Para anular este comportamiento,$convert utilice.

Volver

$toObjectId

En esta página