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.

$cos (operador de expressão )

$cos

Retorna o cosseno de um valor medido em radianos.

$cos tem a seguinte sintaxe:

{ $cos: <expression> }

$cos 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, $cos retorna valores como double. $cos 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, $cos retornará null. Se o argumento for resolvido em NaN, $cos retornará NaN. Se o argumento for resolvido para infinito negativo ou positivo, $cos lançará um erro.

Exemplo
Resultados

{ $cos: NaN }

NaN

{ $cos: null }

null

{ $cos : Infinity}

ou

{ $cos : -Infinity }

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

"errmsg" : "Failed to optimize pipeline :: caused by :: cannot apply $cos 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 aggregation a seguir usa a expressão $cos para calcular o lado adjacente a angle_a e adicioná-lo ao documento de entrada usando o estágio de pipeline $addFields .

db.trigonometry.aggregate([ { $addFields : { "side_a" : { $multiply : [ { $cos : {$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_a" : Decimal128("2.999999999999999999999999999999999"), "hypotenuse" : Decimal128("5"),}

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

Avalie esta página