Dela via


$subtract (som aritmetikuttrycksoperator)

Operatorn $subtract används för att subtrahera två tal och returnera resultatet. Den här operatorn är användbar i olika scenarier som att beräkna skillnader mellan datum, tider eller numeriska värden i ett dokument.

Syntax

{ $subtract: [ <expression1>, <expression2> ] }

Parametrar

Parameter Description
<expression1> Minuend (talet som ett annat tal ska subtraheras från).
<expression2> Subtrahend (talet som ska subtraheras).

Exempel

Exempel 1: Subtrahera total försäljning från full försäljning

I följande exempel visas hur du subtraherar fullSales värdet från totalSales värdet i matrisen salesByCategory .

db.collection.aggregate([
  {
    $project: {
      category: "$sales.salesByCategory.categoryName",
      salesDifference: { $subtract: ["$sales.salesByCategory.totalSales", "$sales.fullSales"] }
    }
  }
])

Dessa utdata visar skillnaden mellan totalförsäljning och fullförsäljning för varje kategori:

[
  { "_id": 1, "category": "Electronics", "salesDifference": 500 },
  { "_id": 2, "category": "Clothing", "salesDifference": -200 },
  { "_id": 3, "category": "Home Appliances", "salesDifference": 1000 }
]

Exempel 2: Beräkna varaktigheten för en kampanjhändelse

I följande exempel beräknas varaktigheten för en kampanjhändelse i dagar genom att subtrahera startDate från endDate.

db.collection.aggregate([
  {
    $project: {
      eventName: "$promotionEvents.eventName",
      eventDuration: {
        $subtract: [
          { $dateFromParts: { year: "$promotionEvents.promotionalDates.endDate.Year", month: "$promotionEvents.promotionalDates.endDate.Month", day: "$promotionEvents.promotionalDates.endDate.Day" } },
          { $dateFromParts: { year: "$promotionEvents.promotionalDates.startDate.Year", month: "$promotionEvents.promotionalDates.startDate.Month", day: "$promotionEvents.promotionalDates.startDate.Day" } }
        ]
      }
    }
  }
])

Det här utdata beräknar antalet dagar mellan start- och slutdatumet för varje kampanjhändelse:

[
  {
    "_id": 4,
    "eventName": "Black Friday",
    "eventDuration": 5
  },
  {
    "_id": 5,
    "eventName": "Holiday Sale",
    "eventDuration": 10
  }
]