Compartir a través de


$ln

El $ln operador calcula el logaritmo natural (base e) del número de entrada.

Syntax

{
  $ln: <number>
}

Parámetros

Parámetro Description
<number> Cualquier expresión válida que se resuelva en un número positivo.

Examples

Considere este documento de ejemplo de la colección de tiendas.

{
    "_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
                }
            ]
        }
    ]
}

Ejemplo 1: Cálculo del logaritmo natural de ventas totales por categoría

Para calcular el logaritmo natural del volumen de ventas por categoría para analizar las tasas de crecimiento, ejecute una consulta con el operador $ln en el campo totalSales para devolver el resultado deseado.

db.stores.aggregate([{
        $match: {
            _id: "40d6f4d7-50cd-4929-9a07-0a7a133c2e74"
        }
    },
    {
        $project: {
            name: 1,
            salesGrowthMetrics: {
                $map: {
                    input: "$sales.salesByCategory",
                    as: "category",
                    in: {
                        categoryName: "$$category.categoryName",
                        salesValue: "$$category.totalSales",
                        naturalLog: {
                            $ln: "$$category.totalSales"
                        }
                    }
                }
            }
        }
    }
])

Esta consulta devuelve el siguiente resultado:

[
  {
    "_id": "40d6f4d7-50cd-4929-9a07-0a7a133c2e74",
    "name": "Proseware, Inc. | Home Entertainment Hub - East Linwoodbury",
    "salesGrowthMetrics": [
      {
        "categoryName": "Sound Bars",
        "salesValue": 2120,
        "naturalLog": 7.659
      },
      {
        "categoryName": "Home Theater Projectors",
        "salesValue": 45004,
        "naturalLog": 10.714
      },
      {
        "categoryName": "Game Controllers",
        "salesValue": 43522,
        "naturalLog": 10.681
      },
      {
        "categoryName": "Remote Controls",
        "salesValue": 28946,
        "naturalLog": 10.273
      },
      {
        "categoryName": "VR Games",
        "salesValue": 32272,
        "naturalLog": 10.382
      }
    ]
  }
]