$ainh用来计算反双曲正切,返回指定表达式的反双曲正切值。
语法
{ $atanh: <expression> }
<expression>为可被解析为数值的表达式,且其值应在-1到1之间,即:-1 <= value <= 1$atanh返回弧度,使用$radiansToDegrees运算符可以把弧度转换为角度$atanh默认返回双精度数double,如果表达式<expression>解析为128-bit decimal则返回同样类型。
使用
如果参数解析为null或引用不存在的字段,则结果返回null;如果参数解析为NaN,则结果返回NaN;如果参数解析为1或-1,则返回正无穷和负无穷;如果参数解析为正无穷或负无穷,则抛出异常,如下表所示:
| 示例 | 结果 |
|---|---|
{ $atanh: NaN } | NaN |
{ $atanh: null } | null |
{ $atanh : 1} | Infinity |
{ $atanh : -1 } | -Infinity |
{ $atanh : Infinity } | 抛出异常 |
{ $atanh : -Infinity } | 抛出异常 |
举例
trigonometry集合中有下面的文档,包含了一个沿x轴的2-D图像:
{
"_id" : ObjectId("5c50782193f833234ba90d85"),
"x-coordinate" : NumberDecimal("0.5")
}
反双曲正切角度
下面的聚合操作使用$atanh表达式计算x-coordinate的反双曲正切,然后使用$radiansToDegrees运算符将结果转换为度数,最后使用$addFields管道阶段将其添加到输入文档。
db.trigonometry.aggregate([
{
$addFields : {
"y-coordinate" : {
$radiansToDegrees : { $atanh : "$x-coordinate" }
}
}
}
])
执行的结果为:
{
"_id" : ObjectId("5c50782193f833234ba90d85"),
"x-coordinate" : NumberDecimal("0.5"),
"y-coordinate" : NumberDecimal("31.47292373094538001977241539068589")
}
反双曲正切弧度
与上例不同,在求反双曲正切后,不进行度数的转换,结果为弧度:
db.trigonometry.aggregate([
{
$addFields : {
"y-coordinate" : {
$atanh : "$x-coordinate"
}
}
}
])
结果为:
{
"_id" : ObjectId("5c50782193f833234ba90d85"),
"x-coordinate" : NumberDecimal("0.5"),
"y-coordinate" : NumberDecimal("0.5493061443340548456976226184612628")
}
文章介绍了MongoDB中的$atanh函数用于计算反双曲正切值,示例了如何在聚合操作中使用它进行角度和弧度转换。重点展示了如何在文档中应用这个数学函数处理2D图像数据。
1722

被折叠的 条评论
为什么被折叠?



