Definição
Compatibilidade
Você pode utilizar o $convert para implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Sintaxe
Alterado na versão 8.3.
{ $convert: { input: <expression>, to: <type expression> || { type: <type expression>, subtype: <int> }, base: <expression>, // new in 8.3 format: <string>, onError: <expression>, onNull: <expression> } }
$convert obtém um documento com os seguintes campos:
Campo | necessidade | Descrição | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Obrigatório | O argumento pode ser qualquer expressão válida. Para mais informações sobre expressões, consulte Expressões. A partir do MongoDB 8.1, você pode definir o campo
A partir do MongoDB,8.3 você também pode definir o O MongoDB também suporta estes tipos numéricos como entrada ao converter um valor em | ||||||||||||||||||||||||||||||||||||
| Obrigatório | Especifica o tipo para converter a expressão
| ||||||||||||||||||||||||||||||||||||
| Obrigatório se especificar | O argumento pode ser qualquer expressão válida que resolva para um dos seguintes identificadores numéricos ou de cadeia de caracteres:
| ||||||||||||||||||||||||||||||||||||
| Opcional | Se
Padrão: 0 (Subtipo binário genérico) | ||||||||||||||||||||||||||||||||||||
| Opcional | Especifica a ordem de bytes endian big ou little para conversões entre | ||||||||||||||||||||||||||||||||||||
| Opcional | Base de número inteiro para conversões entre tipos de string e numéricos.
Novidades na versão 8.3. | ||||||||||||||||||||||||||||||||||||
| Obrigatório ao converter de ou para | Especifica o formato de conversões entre
Se | ||||||||||||||||||||||||||||||||||||
| Opcional | Valor a ser retornado ao encontrar um erro durante a conversão, incluindo conversões de tipo não suportadas. Os argumentos podem ser qualquer expressãoválida. Se não for especificada, a operação gera um erro ao encontrar um erro e é interrompida. | ||||||||||||||||||||||||||||||||||||
| Opcional |
Além de $convert, o MongoDB fornece os seguintes operadores de agregação como abreviação quando o comportamento padrão "onError" e "onNull" é aceitável:
Comportamento
As seções a seguir descrevem como converter valores em diferentes tipos.
Converter em BinData
A partir do MongoDB 8.1, você pode definir o campo to como binData se definir o campo input como um dos seguintes tipos:
intlongdouble
A partir do MongoDB 8.1, $convert retorna um erro ao tentar converter entre diferentes subtipos de binData. No MongoDB 8.0, $convert retorna o valor original e o subtipo original: nenhuma conversão é realizada. Versões do MongoDB anteriores a 8.0 não têm conversão binData.
Converter de tipos numéricos para binData:
Ao converter um tipo numérico para binData:
Um
intse torna um 4-bytebinData.Um
longse torna um 8-bytebinData.Um
doublese torna um 8-bytebinData.
O byteOrder da saída numérica padroniza para "little", ou a colocação do byte menos significativo primeiro. Em contraste, "big" coloca o byte mais significativo primeiro.
Converta long em binData:
Entrada:
db.t.insertOne( { a: Long(42) } )
db.t.aggregate([ { $project: { _id: 0, convertedBD: { $convert: { input: "$a", to: "binData", } }, } } ])
Saída:
[ { convertedBD: Binary.createFromBase64('KgAAAAAAAAA=', 0) } ]
Converta long em binData com ordenação de bytes big-endian:
Entrada:
db.t.insertOne( { a: Long(42) } )
db.t.aggregate([ { $project: { _id: 0, convertedBD: { $convert: { input: "$a", to: "binData", byteOrder: "big", } }, } } ])
Saída:
[ { convertedBD: Binary.createFromBase64('AAAAAAAAACo=', 0), } ]
Converta double em binData:
Entrada:
db.t.insertOne( { a: Double(42.0) } )
db.t.aggregate([ { $project: { _id: 0, convertedBD: { $convert: { input: "$a", to: "binData", } }, } } ])
Saída:
[ { convertedBD: Binary.createFromBase64('AAAAAAAARUA=', 0) } ]
Converta int em binData:
Entrada:
db.t.insertOne( { a: 42 } )
db.t.aggregate([ { $project: { _id: 0, convertedBD: { $convert: { input: "$a", to: "binData", } }, } } ])
Saída:
[ { convertedBD: Binary.createFromBase64('KgAAAA==', 0) } ]
Converta uma array de valores numéricos para binData:
Este exemplo mostra como $convert converte arrays contendo diferentes tipos de valores numéricos em binData.
Entrada:
db.t.insertMany([ // Empty array { a: [ ] }, // Bool array { a: [ false, true, true, true, true, true, true, true, false, false, false, false, false, true, true, true ] }, // Int array { a: [NumberInt(0), NumberInt(1), NumberInt(0), NumberInt(10)] }, // Double array { a: [ Double(0.0), Double(1.0), Double(0.0), Double(1.0), Double(3.14) ] }, ])
db.t.aggregate([ { $project: { _id: 0, original: "$a", convertedVector: { $convert: { input: "$a", to: { type: "binData" } } } } } ])
Saída:
[ { original: [], convertedVector: Binary.fromPackedBits(new Uint8Array([])) }, { original: [ false, true, true, true, true, true, true, true, false, false, false, false, false, true, true, true ], convertedVector: Binary.fromPackedBits(new Uint8Array([ 127, 7 ])) }, { original: [ 0, 1, 0, 10 ], convertedVector: Binary.fromInt8Array(new Int8Array([ 0, 1, 0, 10 ])) }, { original: [ 0, 1, 0, 1, 3.14 ], convertedVector: Binary.fromFloat32Array(new Float32Array([ 0, 1, 0, 1, 3.140000104904175 ])) } ]
Converter de string para BinData
O MongoDB também suporta conversões entre binData e strings.
Os exemplos seguintes demonstram como converter strings em binData.
Exemplo | Resultado | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| | |||||||||||
| | |||||||||||
| | |||||||||||
| | |||||||||||
| | |||||||||||
| | |||||||||||
| |
Observação
A partir do MongoDB 8.1, $convert retorna um erro ao tentar converter entre diferentes subtipos de binData. No MongoDB 8.0, $convert retorna o valor original e o subtipo original: nenhuma conversão é realizada. Versões do MongoDB anteriores a 8.0 não têm conversão binData.
Converter em array
Novidades na versão 8.3.
A tabela a seguir lista os tipos de entrada que podem ser convertidos em uma array:
Tipo de entrada | Comportamento |
|---|---|
BinData | Retorna uma array de valores numéricos. O tipo numérico dos elementos de array depende do formato binData. |
String | Retorna uma array correspondente ao conteúdo dentro da string. A string deve conter caracteres que representam uma array JSON válida. |
Nulo ou Ausente | Retorna nulo. |
A tabela a seguir lista alguns exemplos de conversão de string para array:
Exemplo | Resultados | ||
|---|---|---|---|
| [ 1, 2, 3 ] | ||
| [ 'a', 'b', 'c' ] | ||
| [ ] | ||
| Erro: a entrada não corresponde ao tipo esperado 'array' | ||
| Erro: conversão não suportada de int para array em $convert sem valor onError | ||
| Erro: a entrada não representa um JSON válido: valor autônomo inesperado | ||
| [ { '$oid': '507f1f77bcf86cd799439011' } ] | ||
| [ 1, 2, 3 ] ObservaçãoA opção | ||
| 'on error!' | ||
| 'on null!' |
Converter binData para Array
Este exemplo mostra como $convert converte binData de diferentes formatos em arrays contendo valores de seus respectivos tipos:
Entrada:
db.t.insertMany([ // Empty PACKED_BIT vector converts to empty array { v: BinData(9, "EAA=") }, // PACKED_BIT vector converts to bool array { v: BinData(9, "EAB/Bw==") }, // INT8 vector converts to int array { v: BinData(9, "AwAAAQ==") }, // FLOAT32 vector converts to double array { v: BinData(9, "JwCamZk+") }, // FLOAT32 vector with special values converts to [-Infinity, 0, Infinity] { v: BinData(9, "JwAAAID/AAAAAAAAgH8=") } ])
db.t.aggregate([ { $project: { _id: 0, original: "$v", asArray: { $convert: { input: "$v", to: { type: "array" } } } } } ])
Saída:
[ { original: Binary.fromPackedBits(new Uint8Array([])), asArray: [] }, { original: Binary.fromPackedBits(new Uint8Array([ 127, 7 ])), asArray: [ false, true, true, true, true, true, true, true, false, false, false, false, false, true, true, true ] }, { original: Binary.fromInt8Array(new Int8Array([ 0, 1 ])), asArray: [ 0, 1 ] }, { original: Binary.fromFloat32Array(new Float32Array([ 0.30000001192092896 ])), asArray: [ 0.30000001192092896 ] }, { original: Binary.fromFloat32Array(new Float32Array([ -Infinity, 0, Infinity ])), asArray: [ -Infinity, 0, Infinity ] } ]
Converter em objeto
Novidades na versão 8.3.
A tabela a seguir lista os tipos de entrada que podem ser convertidos em um objeto:
Tipo de entrada | Comportamento |
|---|---|
String | Retorna um documento correspondente ao conteúdo dentro da string. A string deve conter caracteres que representam um objeto JSON válido. |
Nulo ou Ausente | Retorna nulo. |
A tabela a seguir lista alguns exemplos de conversão para objeto :
Exemplo | Resultados | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| { a: 1, b: 2 } | ||||||||
| { } | ||||||||
| Erro: a entrada não corresponde ao tipo esperado "objeto" | ||||||||
| Erro: a entrada não representa um JSON válido: valor autônomo inesperado | ||||||||
| Erro: a entrada não representa um JSON válido: byte nulo incorporado ilegal | ||||||||
| { name: 'fox00o' } | ||||||||
| { a: 3, b: 2 } | ||||||||
| {foo: null } | ||||||||
| {foo: false } | ||||||||
| { ['__proto__']: {foo: null } } | ||||||||
| { foo: 'NaN' } | ||||||||
| {foo: 123 } | ||||||||
| {foo: Long('4294967296') } | ||||||||
| {foo: 1.123123 } | ||||||||
| {foo: 1200 } | ||||||||
| { largePos: 18446744073709552000 } | ||||||||
| { largeNeg: -18446744073709552000 } | ||||||||
| zero | ||||||||
| { objectId: '507f1f77bcf86cd799439011', uuid: '3b241101-e2bb-4255-8caf-4136c566a962', date: '2018-03-27T16:58:51.538Z', regex: '/^ABC/i', js: 'function (s) {return s + "foo";}', timestamp: 'Timestamp(1565545664, 1)', arr: [ 1, 2, 3 ] } |
converter para booleano
A tabela a seguir lista os tipos de entrada que podem ser convertidos em booleanos:
Tipo de entrada | Comportamento |
|---|---|
Array | Retorna verdadeiro |
Dados binários | Retorna verdadeiro |
Boolean | Sem operação. Retorna o valor booleano. |
Código | Retorna verdadeiro |
Data | Retorna verdadeiro |
Decimal | Returns true if not zero Return false if zero |
Double | Returns true if not zero Return false if zero |
Inteiro | Returns true if not zero Return false if zero |
JavaScript | Retorna verdadeiro |
Long | Returns true if not zero Return false if zero |
Tecla máxima | Retorna verdadeiro |
Chave mín. | Retorna verdadeiro |
Zero | Retorna o valor especificado para a opção |
Objeto | Retorna verdadeiro |
ObjectId | Retorna verdadeiro |
expressão regular | Retorna verdadeiro |
String | Retorna verdadeiro |
Timestamp | Retorna verdadeiro |
Para saber mais sobre os tipos de dados no MongoDB, consulte a página BSON Types.
A tabela a seguir lista alguns exemplos de conversão para booleana:
Exemplo | Resultados | ||||
|---|---|---|---|---|---|
| true | ||||
| false | ||||
| true | ||||
| true | ||||
| false | ||||
| true | ||||
| true | ||||
| true | ||||
| true | ||||
| true | ||||
| zero |
converter para número inteiro
A tabela a seguir lista os tipos de entrada que podem ser convertidos para um número inteiro:
Tipo de entrada | Comportamento |
|---|---|
Boolean | Returns 0 for false.Returns 1 for true. |
BinData | Retorna o valor O número de bytes no valor Se o |
Double | Retorna valor truncado. O valor double truncado deve cair dentro do valor mínimo e máximo para um número inteiro. Você não pode converter um valor double cujo valor truncado é menor que o valor inteiro mínimo ou é maior que o valor inteiro máximo. |
Decimal | Retorna valor truncado. O valor decimal truncado deve cair dentro do valor mínimo e máximo para um número inteiro. Você não pode converter um valor decimal cujo valor truncado é menor que o valor inteiro mínimo ou é maior que o valor inteiro máximo. |
Inteiro | Nenhum oplog. Retorna o valor inteiro. |
Long | Retorna o valor longo como um número inteiro. O valor longo deve cair dentro do valor mínimo e máximo para um número inteiro. Você não pode converter um valor longo que seja menor que o valor inteiro mínimo ou maior que o valor inteiro máximo. |
String | Retorna o valor numérico da string como um número inteiro. Se você omitir Se você especificar |
A tabela a seguir lista alguns exemplos de conversão para número inteiro:
Exemplo | Resultados | |||||
|---|---|---|---|---|---|---|
| 1 | |||||
| 0 | |||||
| 1 | |||||
| 5 | |||||
| Erro | |||||
| 5.000 | |||||
| Erro | |||||
| -2 | |||||
| Erro | |||||
| zero | |||||
| 1048576 | |||||
| -1763180545 | |||||
| Erro: falha ao converter BinData devido ao comprimento inválido: 7 |
converter para decimal
A tabela a seguir lista os tipos de entrada que podem ser convertidos em um número decimal:
Tipo de entrada | Comportamento |
|---|---|
Boolean | Returns Decimal128( "0" ) for false.Returns Decimal128( "1" ) for true. |
Double | Retorna o valor double como decimal. |
Decimal | Nenhum oplog. Retorna o decimal. |
Inteiro | Retorna o valor int como decimal. |
Long | Retorna o valor longo como decimal. |
String | Retorna o valor numérico da string como decimal. Se você omitir Se você especificar |
Data | Retorna o número de milissegundos desde a época que corresponde ao valor de data. |
A tabela a seguir lista alguns exemplos de conversão para decimal:
Exemplo | Resultados | ||||
|---|---|---|---|---|---|
| Decimal128("1") | ||||
| Decimal128("0") | ||||
| Decimal128( "2,50000000000000" ) | ||||
| Decimal128("5") | ||||
| Decimal128("10.000") | ||||
| Decimal128("-5,5") | ||||
| Decimal128("1522039108044") |
converter para double
A tabela a seguir lista os tipos de entrada que podem ser convertidos em double:
Tipo de entrada | Comportamento |
|---|---|
Boolean | Returns NumberDouble(0) for false.Returns NumberDouble(1) for true. |
BinData | Retorna o valor O número de bytes no valor Se o |
Double | Nenhum oplog. Retorna o double. |
Decimal | Retorna o valor decimal como double. O valor decimal deve cair dentro do valor mínimo e máximo para um double. Você não pode converter um valor decimal cujo valor é menor que o double mínimo ou maior que o double máximo. |
Inteiro | Retorna o valor inteiro como double. |
Long | Retorna o valor longo como double. |
String | Retorna o valor numérico da string como double. Se você omitir Se você especificar |
Data | Retorna o número de milissegundos desde a época que corresponde ao valor de data. |
A tabela a seguir lista alguns exemplos de conversão em double:
Exemplo | Resultados | |||||
|---|---|---|---|---|---|---|
| 1 | |||||
| 0 | |||||
| 2.5 | |||||
| 5 | |||||
| 10.000 | |||||
| -5.5 | |||||
| 50000000000 | |||||
| 1522039108044 | |||||
| 4.814824932714571e-36 | |||||
| Erro: falha ao converter binData devido ao comprimento inválido: 2 |
Números subnormais
A partir do MongoDB,8.3 o servidor é capaz de analisar toda a gama de todos os números de ponto flutuante de precisão dupla representáveis. Isso inclui números subnormais em que o dígito mais significativo tem zeros à esquerda e o expoente tem o menor valor possível. Para obter detalhes, consulte Número subnormal.
Nas versões anteriores do MongoDB, o servidor retorna um erro quando você tenta analisar esses números. O exemplo a seguir gera um erro em versões anteriores ao MongoDB 8.3:
db.t.insertOne( { v: "7.08263e-317" } ) db.t.aggregate([ { $project: { converted: { $convert: { input: "$v", to: "double" }, } } } ])
Este exemplo falha com um erro semelhante ao seguinte:
MongoServerError[ConversionFailure]: Executor error during aggregate command on namespace: test.t :: caused by :: Failed to parse number '7.08263e-317' in $convert with no onError value: Out of range
converter para longo
A tabela a seguir lista os tipos de entrada que podem ser convertidos para um longo:
Tipo de entrada | Comportamento |
|---|---|
Boolean | Returns 0 for false.Returns 1 for true. |
BinData | Retorna o valor O número de bytes no valor Se o |
Double | Retorna valor truncado. O valor double truncado deve cair dentro do valor mínimo e máximo por um longo período. Você não pode converter um valor double cujo valor truncado é menor que o valor mínimo longo ou é maior que o valor máximo longo. |
Decimal | Retorna valor truncado. O valor decimal truncado deve cair dentro do valor mínimo e máximo por um longo período. Não é possível converter um valor decimal cujo valor truncado seja menor que o valor longo mínimo ou maior que o valor longo máximo. |
Inteiro | Retorna o valor int como um longo. |
Long | Sem operação. Retorna o valor longo. |
String | Retorna o valor numérico da string. Se você omitir Se você especificar |
Data | Converte a data para o número de milissegundos desde a época. |
A tabela a seguir lista alguns exemplos de conversão:
Exemplo | Resultados | |||||
|---|---|---|---|---|---|---|
| Long("1") | |||||
| Long("0") | |||||
| Longo("2") | |||||
| Long("5") | |||||
| Erro | |||||
| Long("8") | |||||
| Long("1522039108044") | |||||
| Long("-2") | |||||
| Erro | |||||
| zero | |||||
| Long("1048576") |
converter em data
A tabela a seguir lista os tipos de entrada que podem ser convertidos em uma data:
Tipo de entrada | Comportamento |
|---|---|
Double | Retorna uma data que corresponde ao número de milissegundos representado pelo valor double truncado. O número positivo corresponde ao número de milissegundos desde 1° de janeiro de 1970. O número negativo corresponde ao número de milissegundos antes de 1° de janeiro de 1970. |
Decimal | Retorna uma data que corresponde ao número de milissegundos representados pelo valor decimal truncado. O número positivo corresponde ao número de milissegundos desde 1° de janeiro de 1970. O número negativo corresponde ao número de milissegundos antes de 1° de janeiro de 1970. |
Long | Retorna uma data que corresponde ao número de milissegundos representados pelo valor longo. O número positivo corresponde ao número de milissegundos desde 1° de janeiro de 1970. O número negativo corresponde ao número de milissegundos antes de 1° de janeiro de 1970. |
String | Retorna uma data que corresponde à string de data. A string deve ser uma string de data válida, como:
|
ObjectId | Retorna uma data que corresponde ao carimbo de data/hora do ObjectId. |
Timestamp | Retorna uma data que corresponde ao carimbo de data/hora. |
A tabela a seguir lista alguns exemplos de conversão em data:
Exemplo | Resultados | ||||
|---|---|---|---|---|---|
| ISODATE("1973-10-20T21:20:00,000Z") | ||||
| ISODATE("2009-09-19T14:53:56,000Z") | ||||
| ISODATE("2004-11-09T11:33:20,000Z") | ||||
| ISODATE("1935-02-22T12:26:40,000Z") | ||||
| ISODATE("2018-03-27T04:08:58,000Z") | ||||
| ISODATE("2018-03-03T00:00:00,000Z") | ||||
| ISODATE("2018-03-20T06:00:06,000Z") | ||||
| Erro | ||||
| ISODATE("2021-11-23T17:21:58,000Z") |
converter para ObjectId
A tabela a seguir lista os tipos de entrada que podem ser convertidos para um ObjectId:
Tipo de entrada | Comportamento |
|---|---|
String | Retorna um ObjectId para a string hexadecimal de comprimento 24. Não é possível converter um valor de string que não seja uma string hexadecimal de comprimento 24. |
A tabela a seguir lista alguns exemplos de conversão em data:
Exemplo | Resultados | ||||
|---|---|---|---|---|---|
| ObjectId("5ab9cbfa31c2ab715d42129e") | ||||
| Erro |
converter em string
A tabela a seguir lista os tipos de entrada que podem ser convertidos em uma string:
Tipo de entrada | Comportamento |
|---|---|
Array | Retorna como uma Novidades na versão 8.3. |
BinData | Se o |
Boolean | Retorna o valor booleano como uma string. |
Data | Retorna como uma |
Decimal | Retorna o valor como uma |
Double | Retorna o valor como uma |
Inteiro | Retorna o valor como uma |
Long | Retorna o valor como uma |
Tecla máxima | Retorna como uma Novidades na versão 8.3. |
Chave mín. | Retorna como uma Novidades na versão 8.3. |
Objeto | Retorna o objeto como uma string. Novidades na versão 8.3. |
ObjectId | Retorna o valor como uma string |
Expressão regular | Retorna como uma Novidades na versão 8.3. |
String | Nenhuma operação. Retorna o valor da string. |
Timestamp | Retorna como uma Novidades na versão 8.3. |
Observação
A tabela a seguir lista alguns exemplos de conversão para string:
Exemplo | Resultados | ||||||
|---|---|---|---|---|---|---|---|
| "verdadeiro" | ||||||
| "falso" | ||||||
| "2,5" | ||||||
| "2" | ||||||
| "1.000" | ||||||
| "5ab9c3da31c2ab715d421285" | ||||||
| "2018-03-27T16:58:51.538Z" | ||||||
| 'hn3f' | ||||||
| "inválido" |
Exemplos
Exemplo de conversão de base
Crie uma collection examples com um documento de espaço reservado :
db.examples.insertOne({ _id: 1 })
O exemplo a seguir converte entre números e strings usando bases diferentes:
db.examples.aggregate([ { $project: { _id: 0, bin: { $convert: { input: 10, to: "string", base: 2 } }, hex: { $convert: { input: 10, to: "string", base: 16 } }, intFromBin: { $convert: { input: "1010", to: "int", base: 2 } }, intFromHex: { $convert: { input: "A", to: "int", base: 16 } } } } ])
Esta operação retorna o seguinte documento:
{ bin: "1010", hex: "A", intFromBin: 10, intFromHex: 10 }
Exemplo de conversão de tipo
Crie uma collection orders com os seguintes documentos:
db.orders.insertMany( [ { _id: 1, item: "apple", qty: 5, price: 10 }, { _id: 2, item: "pie", qty: 10, price: Decimal128("20.0") }, { _id: 3, item: "ice cream", qty: 2, price: "4.99" }, { _id: 4, item: "almonds" }, { _id: 5, item: "bananas", qty: 5000000000, price: Decimal128("1.25") } ] )
A seguinte operação de agregação na coleção orders converte o price para um decimal:
// Define stage to add convertedPrice and convertedQty fields with // the converted price and qty values. // If price or qty values are missing, the conversion returns a // value of decimal value or int value of 0. // If price or qty values cannot be converted, the conversion returns // a string priceQtyConversionStage = { $addFields: { convertedPrice: { $convert: { input: "$price", to: "decimal", onError: "Error", onNull: Decimal128("0") } }, convertedQty: { $convert: { input: "$qty", to: "int", onError:{ $concat: [ "Could not convert ", { $toString:"$qty" }, " to type integer." ] }, onNull: Int32("0") } }, } }; totalPriceCalculationStage = { $project: { totalPrice: { $switch: { branches: [ { case: { $eq: [ { $type: "$convertedPrice" }, "string" ] }, then: "NaN" }, { case: { $eq: [ { $type: "$convertedQty" }, "string" ] }, then: "NaN" }, ], default: { $multiply: [ "$convertedPrice", "$convertedQty" ] } } } } }; db.orders.aggregate( [ priceQtyConversionStage, totalPriceCalculationStage ])
A operação retorna os seguintes documentos:
{ _id: 1, totalPrice: Decimal128("50") }, { _id: 2, totalPrice: Decimal128("200.0") }, { _id: 3, totalPrice: Decimal128("9.98") }, { _id: 4, totalPrice: Decimal128("0") }, { _id: 5, totalPrice: 'NaN' }
Saiba mais
Converta um valor para uma array com
$toArrayConverta uma string em um objeto com
$toObjectConverta um valor em booleano com
$toBoolConverta um valor em um número inteiro com
$toIntConverta um valor para um decimal com
$toDecimalConverta um valor em um valor duplo com
$toDoubleConverta um valor em um longo com
$toLongConverta um valor para uma data com
$toDateConverter um valor para um ObjectId com
$toObjectIdConverta um valor em uma string com
$toStringConverta uma string de data em um objeto de data com
$dateFromStringConverta um objeto de data em uma string com
$dateToString