Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El $derivative operador ordena documentos en uno o varios campos dentro de una partición y calcula la tasa media de cambio de un campo entre los primeros y los últimos documentos dentro de la ventana.
Syntax
{
$derivative: {
input: < expression >,
unit: < timeWindow >
}
}
Parámetros
| Parámetro | Description |
|---|---|
input |
Expresión o campo para calcular la tasa del intervalo |
unit |
Período de tiempo para la tasa de cambio |
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 derivado de las ventas totales
Para calcular el derivado de las ventas totales de cada tienda de la empresa First Up Consultants, primero ejecute una consulta para filtrar por la empresa, ordene los documentos resultantes en orden ascendente de sus últimas marcas de tiempo actualizadas y calcule el derivate (tasa media de cambio) de las ventas totales entre el primer y el documento actual en el conjunto de resultados.
db.stores.aggregate([{
"$match": {
"company": {
"$in": [
"First Up Consultants"
]
},
"$and": [{
"lastUpdated": {
"$gt": ISODate("2024-12-01T03:06:24.180Z")
}
},
{
"lastUpdated": {
"$lt": ISODate("2025-12-01T03:55:17.557Z")
}
}
]
}
},
{
"$setWindowFields": {
"partitionBy": "$company",
"sortBy": {
"lastUpdated": 1
},
"output": {
"storeAverageSales": {
"$derivative": {
"input": "$sales.totalSales",
"unit": "week"
},
"window": {
"range": [
-1,
0
],
"unit": "week"
}
}
}
}
},
{
"$project": {
"lastUpdated": 1,
"storeAverageSales": 1
}
}
])
Esta consulta devuelve el siguiente resultado:
[
{
"_id": "2cf3f885-9962-4b67-a172-aa9039e9ae2f",
"lastUpdated": "2025-06-11T10:48:01.291Z",
"storeAverageSales": 21554495.708753344
}
]