Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.

$sin (operador de expressão )

$sin

Retorna o seno de um valor que é medido em radianos.

$sin tem a seguinte sintaxe:

{ $sin: <expression> }

$sin aceita qualquer expressão válida que seja resolvida para um número. Se a expressão retornar um valor em graus, use o operador $degreesToRadians para converter o resultado para radianos.

Por padrão, $sin retorna valores como double. $sin também pode retornar valores como um decimal de 128 bits, desde que o <expression> resolva para um valor decimal de 128 bits.

Para mais informações sobre expressões, consulte Expressões.

Se o argumento for resolvido para um valor de null ou se referir a um campo ausente, $sin retornará null. Se o argumento for resolvido em NaN, $sin retornará NaN. Se o argumento for resolvido para infinito negativo ou positivo, $sin lançará um erro.

Exemplo
Resultados

{ $sin: NaN }

NaN

{ $sin: null }

null

{ $sin : Infinity}

ou

{ $sin : -Infinity }

Lança uma mensagem de erro semelhante à seguinte saída formatada:

"errmsg" : "Failed to optimize pipeline :: caused by :: cannot apply $sin to -inf, value must in (-inf,inf)"

A collection trigonometry contém um documento que armazena a hipotenusa e um ângulo em um triângulo retângulo:

{ "_id" : ObjectId("5c50782193f833234ba90d85"), "angle_a" : Decimal128("53.13010235415597870314438744090659"), "hypotenuse" : Decimal128("5")}

A operação de agregação a seguir usa a expressão $sin para calcular o lado oposto a angle_a e adicioná-lo ao documento de entrada usando o estágio do pipeline $addFields.

db.trigonometry.aggregate([ { $addFields : { "side_b" : { $multiply : [ { $sin : {$degreesToRadians : "$angle_a"} }, "$hypotenuse" ] } } }])

A expressão $degreesToRadians converte o valor do grau de angle_a no valor equivalente em radianos.

O comando retorna a seguinte saída:

{ "_id" : ObjectId("5c50782193f833234ba90d85"), "angle_a" : Decimal128("53.13010235415597870314438744090659"), "side_b" : Decimal128("4.000000000000000000000000000000000"), "hypotenuse" : Decimal128("5"),}

Como angle_a e hypotenuse são armazenados como decimais de 128bits, a saída de $sin é um decimal de 128bits.

Avalie esta página