Definición
$toLongConvierte un valor a un long. Si el valor no puede convertirse en un long,
$toLongerrores. Si el valor es nulo o falta,$toLongdevuelve nulo.$toLongtiene la siguiente sintaxis:{ $toLong: <expression> } El toma cualquier valor
$toLongválido expresión.El
$toLonges una abreviatura de la siguiente expresión$convert:{ $convert: { input: <expression>, to: "long" } } Tip
Comportamiento
La siguiente tabla enumera los tipos de entrada que pueden convertirse a un "long":
Tipo de entrada | Comportamiento |
|---|---|
Booleano | Returns Long(0) for false.Returns Long(1) for true. |
Double | Retorna un valor truncado. El valor double truncado debe estar dentro del valor mínimo y máximo para un largo. No se puede convertir un valor double cuyo valor truncado es inferior al valor mínimo de long o superior al valor máximo de long. |
Decimal | Retorna un valor truncado. El valor decimal truncado debe estar dentro del valor mínimo y máximo para un entero largo. No puedes convertir un valor decimal cuyo valor truncado sea inferior al valor mínimo de long o supere el valor máximo de long. |
entero | Devuelve el valor int como un long. |
Long | No opera. Devuelve el valor largo. |
String | Devuelve el valor numérico de la string. El valor de la string debe ser un long de base 10 (por ejemplo, No se puede convertir un valor de cadena de un número flotante, decimal o que no sea de base 10 (por |
fecha | Convierte la fecha en el número de milisegundos transcurridos desde la Unix epoch. |
La siguiente tabla enumera algunos ejemplos de conversión a largos:
Ejemplo | Resultados |
|---|---|
| Long("1") |
| Largo("0") |
| Long("1") |
| Prolongado ("5") |
| Error |
| Long(8) |
| Long("1522039108044") |
| large("-2") |
| Error |
| Nulo |
Ejemplo
Cree una colección orders con los siguientes documentos:
db.orders.insertMany( [ { _id: 1, item: "apple", qty: Int32(5) }, { _id: 2, item: "pie", qty: "100" }, { _id: 3, item: "ice cream", qty: Long("500") }, { _id: 4, item: "almonds", qty: "50" }, ] )
La siguiente operación de agregación en la colección orders convierte el qty a long antes de ordenar por el valor:
// Define stage to add convertedQty field with converted qty value qtyConversionStage = { $addFields: { convertedQty: { $toLong: "$qty" } } }; // Define stage to sort documents by the converted qty values sortStage = { $sort: { "convertedQty": -1 } }; db.orders.aggregate( [ qtyConversionStage, sortStage ])
La operación devuelve los siguientes documentos:
{ _id: 3, item: 'ice cream', qty: Long("500"), convertedQty: Long("500") }, { _id: 2, item: 'pie', qty: '100', convertedQty: Long("100") }, { _id: 4, item: 'almonds', qty: '50', convertedQty: Long("50") }, { _id: 1, item: 'apple', qty: 5, convertedQty: Long("5") }
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.