Bagikan melalui


$subtract (sebagai operator ekspresi aritmatika)

Operator $subtract digunakan untuk mengurangi dua angka dan mengembalikan hasilnya. Operator ini berguna dalam berbagai skenario seperti menghitung perbedaan antara tanggal, waktu, atau nilai numerik dalam dokumen.

Sintaksis

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

Parameter-parameternya

Pengaturan Deskripsi
<expression1> Minuend (angka dari mana angka lain akan dikurangi).
<expression2> Subtrahend (angka yang akan dikurangi).

Contoh

Contoh 1: Mengurangi Total Penjualan dari Penjualan Penuh

Contoh berikut menunjukkan cara mengurangi fullSales nilai dari totalSales nilai dalam salesByCategory array.

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

Output ini menunjukkan perbedaan antara totalSales dan fullSales untuk setiap kategori:

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

Contoh 2: Menghitung Durasi Acara Promosi

Contoh berikut menghitung durasi acara promosi dalam hari dengan mengurangi startDate dari 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" } }
        ]
      }
    }
  }
])

Output ini menghitung jumlah hari antara tanggal mulai dan berakhir dari setiap acara promosi:

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