适用对象:
MongoDB vCore
该 $log
运算符计算指定基数中的数字的对数。
语法
运算符的 $isArray
语法如下所示:
{ $log: [ <number>, <base> ] }
参数
DESCRIPTION | |
---|---|
<number> |
解析为正数的任何有效表达式。 |
<base> |
解析为正数的任何有效表达式都用作对数基数。 |
示例:
让我们了解数据集中的示例数据的 stores
使用情况,以使用不同的对数基数计算销售指标。
db.stores.aggregate([
{ $match: { "_id": "40d6f4d7-50cd-4929-9a07-0a7a133c2e74" } },
{
$project: {
name: 1,
categoryAnalysis: {
$map: {
input: "$sales.salesByCategory",
as: "category",
in: {
categoryName: "$$category.categoryName",
sales: "$$category.totalSales",
logBase2: { $log: ["$$category.totalSales", 2] },
logBase10: { $log: ["$$category.totalSales", 10] }
}
}
}
}
}
])
这将生成以下输出:
{
"_id": "40d6f4d7-50cd-4929-9a07-0a7a133c2e74",
"name": "Proseware, Inc. | Home Entertainment Hub - East Linwoodbury",
"categoryAnalysis": [
{
"categoryName": "Sound Bars",
"sales": 2120,
"logBase2": 11.051,
"logBase10": 3.326
},
{
"categoryName": "Home Theater Projectors",
"sales": 45004,
"logBase2": 15.458,
"logBase10": 4.653
},
{
"categoryName": "Game Controllers",
"sales": 43522,
"logBase2": 15.410,
"logBase10": 4.639
},
{
"categoryName": "Remote Controls",
"sales": 28946,
"logBase2": 14.822,
"logBase10": 4.462
},
{
"categoryName": "VR Games",
"sales": 32272,
"logBase2": 14.977,
"logBase10": 4.509
}
]
}