Definición
$toStringConvierte un valor en una cadena. Si el valor no se puede convertir en una cadena,
$toStringerrores. Si el valor es nulo o falta, devuelve$toStringnulo.$toStringtiene la siguiente sintaxis:{ $toString: <expression> } El toma cualquier valor
$toStringválido expresión.$toStringes una abreviatura de la siguiente$convertexpresión:{ $convert: { input: <expression>, to: "string" } }
Comportamiento
La siguiente tabla enumera los tipos de entrada que se pueden convertir en una cadena:
Tipo de entrada | Comportamiento |
|---|---|
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 |
|---|---|
| "true" |
| "FALSO" |
| "2.5" |
| "2" |
| "1000" |
| "5ab9c3da31c2ab715d421285" |
| "2018-03-27T16:58:51.538Z" |
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 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.