$sqrt

El $sqrt operador se usa para calcular la raíz cuadrada de un número especificado.

Syntax

{
  $sqrt: <expression>
}

Parámetros

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

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: Calcular la raíz cuadrada de las ventas

Para calcular la raíz cuadrada de los volúmenes de ventas de cada tienda bajo la empresa "First Up Consultants", primero ejecute una consulta para filtrar los almacenes por el nombre de la empresa. A continuación, use el operador $sqrt en el campo totalSales para recuperar los resultados deseados.

db.stores.aggregate([{
    $match: {
        company: {
            $in: ["First Up Consultants"]
        }
    }
}, {
    $project: {
        name: 1,
        "sales.revenue": 1,
        categoryName: "$promotionEvents.discounts.categoryName",
        sqrtFullSales: {
            $sqrt: "$sales.revenue"
        }
    }
}])

Los dos primeros resultados devueltos por esta consulta son:

[
    {
        "_id": "c52c9f65-5b1a-4ef5-a7a2-d1af0426cbe4",
        "name": "First Up Consultants | Jewelry Pantry - Nicolasberg",
        "sales": {
            "revenue": 4624
        },
        "categoryName": [
            [
                "Watches",
                "Bracelets"
            ],
            [
                "Brooches",
                "Necklaces"
            ],
            [
                "Charms",
                "Brooches"
            ],
            [
                "Brooches",
                "Anklets"
            ],
            [
                "Earrings",
                "Anklets"
            ]
        ],
        "sqrtFullSales": 68
    },
    {
        "_id": "176aa484-c21c-44ce-ab6d-5e097bbdc2b4",
        "name": "First Up Consultants | Medical Supply Shop - Daughertyville",
        "sales": {
            "revenue": 67311
        },
        "categoryName": [
            [
                "First Aid Kits",
                "OTC Medications"
            ],
            [
                "Blood Pressure Monitors",
                "OTC Medications"
            ],
            [
                "Face Masks",
                "Stethoscopes"
            ]
        ],
        "sqrtFullSales": 259.44363549719236
    }
]