MongoDB $log 运算符2024 年 9 月 6 日 | 3 分钟阅读 $log 运算符是什么?MongoDB 提供了各种算术表达式运算符。$log 运算符是这些运算符之一。$log 运算符用于聚合管道阶段。该运算符还用于计算给定底数的数字的对数,并将输出作为双精度数返回。 $log 运算符的语法<number> 可以是任何解析为非负数(0、1、2、3....)的有效表达式,<base> 可以是任何解析为大于 1 的正数的有效表达式。 重要提示
示例在下面的示例中,我们将使用 >db.example1.find().pretty()
{
{
"_id" : ObjectId("56254d4fdf2222265r4g1hb78452"),
"name" : "rectangle",
"area" : 16
}
{
"_id" : ObjectId("56254d4fdf2222265r4g1hb71478"),
"name" : "rectangle",
"area" : 6
}
{
"_id" : ObjectId("56254d4fdf2222265r4g1789654"),
"name" : "circle",
"area" : 19,
"unit" : {
"diameter" : 6,
"radius" : 3
}
}
{
"_id" : ObjectId("56254d4fdf2222265r4g1987412"),
"name" : "rectangle",
"area" : 20
}
{
"_id" : ObjectId("56254d4fdf2222265r4g1987412"),
"name" : "square",
"area" : 20
}
{
"_id" : ObjectId("56254d4fdf2222265r4g1987f15"),
"name" : "triangle",
"area" : null
}
}
示例 1:使用 $log 运算符 在此示例中,我们将找到每个矩形的 area 字段的对数,并且对数的底数为 10。 输出 {
"_id" : ObjectId("56254d4fdf2222265r4g1hb78452"),
"name" : "rectangle",
"area" : 16,
"logArea" : 1.204119982655925
}
{
"_id" : ObjectId("56254d4fdf2222265r4g1789654"),
"name" : " rectangle",
"area" : 6,
"logArea" : 0.778151250383644
}
{
"_id" : ObjectId("56254d4fdf2222265r4g1987412"),
"name" : "rectangle",
"area" : 20,
"logArea" : 1.301029995663981
}
示例 2:使用 $log 运算符(嵌入文档) 在此示例中,我们将找到圆的 unit.radius 字段的对数,并且对数的底数为 2。 输出 {
"_id" : ObjectId("56254d4fdf2222265r4g1789654"),
"name" : "cricle",
"area" : 19,
"unit" : { "radius" : 3 },
"logRadius" : 1.5849625007212
}
示例 3:缺失字段 在此示例中,我们将找到正方形的 perimeter 字段的对数,并且对数的底数为 10。 输出 {
"_id" : ObjectId("56254d4fdf2222265r4g1987412"),
"name" : "square",
"area" : 20,
"perimeter" : null
}
示例 4:Null 值 在此示例中,我们将找到三角形的 area 字段的对数,并且对数的底数为 16。 输出 {
"_id" : ObjectId("56254d4fdf2222265r4g1987f15"),
"name" : "triangle",
"area" : null,
"logArea" : null,
}
|
我们请求您订阅我们的新闻通讯以获取最新更新。