Definición
$toStringConvierte un valor a una string. Si el valor no se puede convertir en una string,
$toStringerrores. Si el valor es nulo o falta,$toStringdevuelve nulo.$toStringtiene la siguiente sintaxis:{ $toString: <expression> } El
$toStringacepta cualquier expresión.El
$toStringes una abreviatura de la siguiente expresión$convert:{ $convert: { input: <expression>, to: "string" } }
Comportamiento
La siguiente tabla enumera los tipos de entrada que se pueden convertir en una string:
Tipo de entrada | Comportamiento |
|---|---|
Arreglo | Retorna la Nuevo en la versión 8.3. |
BinData | Si el |
Booleano | Devuelve el valor booleano como una string. |
fecha | Retorna la |
Decimal | Devuelve el valor |
Double | Devuelve el valor |
entero | Devuelve el valor |
Long | Devuelve el valor |
Clave máxima | Retorna la Nuevo en la versión 8.3. |
MinKey | Retorna la Nuevo en la versión 8.3. |
Objeto | Devuelve el objeto como un string. Nuevo en la versión 8.3. |
ObjectId | Retorna el valor |
Expresión regular | Retorna la Nuevo en la versión 8.3. |
String | Sin operación. Devuelve el valor de la string. |
Marca de tiempo | Retorna la Nuevo en la versión 8.3. |
Tip
Para convertir cadenas en bases distintas de 10, use $convert con la opción base.
La siguiente tabla enumera algunos ejemplos de conversión a string:
Ejemplo | Resultados |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Nuevo en la versión 8.3. |
|
Nuevo en la versión 8.3. |
|
Nuevo en la versión 8.3. |
|
Nuevo en la versión 8.3. |
|
Nuevo en la versión 8.3. |
|
Nuevo en la versión 8.3. |
Ejemplo
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.