Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der $log-Operator berechnet den Logarithmus einer Zahl zur angegebenen Basis.
Syntax
{
$log: [ <number>, <base> ]
}
Die Parameter
| Parameter | Description |
|---|---|
<number> |
Ein beliebiger gültiger Ausdruck, der in eine positive Zahl aufgelöst wird. |
<base> |
Ein beliebiger gültiger Ausdruck, der in eine positive Zahl aufgelöst wird, die als Logarithmusbasis verwendet werden soll. |
Examples
Betrachten Sie dieses Beispieldokument aus der Stores-Sammlung.
{
"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4",
"name": "First Up Consultants | Beverage Shop - Satterfieldmouth",
"location": {
"lat": -89.2384,
"lon": -46.4012
},
"staff": {
"totalStaff": {
"fullTime": 8,
"partTime": 20
}
},
"sales": {
"totalSales": 75670,
"salesByCategory": [
{
"categoryName": "Wine Accessories",
"totalSales": 34440
},
{
"categoryName": "Bitters",
"totalSales": 39496
},
{
"categoryName": "Rum",
"totalSales": 1734
}
]
},
"promotionEvents": [
{
"eventName": "Unbeatable Bargain Bash",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 6,
"Day": 23
},
"endDate": {
"Year": 2024,
"Month": 7,
"Day": 2
}
},
"discounts": [
{
"categoryName": "Whiskey",
"discountPercentage": 7
},
{
"categoryName": "Bitters",
"discountPercentage": 15
},
{
"categoryName": "Brandy",
"discountPercentage": 8
},
{
"categoryName": "Sports Drinks",
"discountPercentage": 22
},
{
"categoryName": "Vodka",
"discountPercentage": 19
}
]
},
{
"eventName": "Steal of a Deal Days",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 9,
"Day": 21
},
"endDate": {
"Year": 2024,
"Month": 9,
"Day": 29
}
},
"discounts": [
{
"categoryName": "Organic Wine",
"discountPercentage": 19
},
{
"categoryName": "White Wine",
"discountPercentage": 20
},
{
"categoryName": "Sparkling Wine",
"discountPercentage": 19
},
{
"categoryName": "Whiskey",
"discountPercentage": 17
},
{
"categoryName": "Vodka",
"discountPercentage": 23
}
]
}
]
}
Beispiel 1 – Berechnen Sie den Logarithmus des Gesamtumsatzes
Um das Protokoll der Verkaufsvolumen pro Kategorie in der Basis von 2 und 10 zu berechnen, führen Sie eine Abfrage mithilfe des $log-Operators für das Feld „totalSales“ mit der Basis von 2 bzw. 10 aus, um das gewünschte Ergebnis zurückzugeben.
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]
}
}
}
}
}
}
])
Diese Abfrage gibt das folgende Ergebnis zurück:
[
{
"_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
}
]
}
]