Bagikan melalui


$unset (agregasi)

Tahap $unset alur agregasi digunakan untuk menghapus bidang tertentu dari dokumen. Ini dapat sangat berguna ketika Anda perlu mengecualikan bidang tertentu dari hasil kueri agregasi karena alasan seperti privasi, mengurangi ukuran payload, atau hanya membersihkan output.

Sintaksis

Sintaks untuk tahap $unset mudah. Ini menerima argumen tunggal yang bisa menjadi nama bidang atau array nama bidang yang akan dihapus dari dokumen.

{
  $unset: "<field1>" | ["<field1>", "<field2>", ...]
}

Parameter-parameternya

Deskripsi
field1, field2, ... Nama bidang yang akan dihapus dari dokumen.

Contoh

Berikut adalah beberapa contoh yang menunjukkan cara menggunakan tahap $unset dalam alur agregasi.

Contoh 1: Menghapus Satu Bidang

Misalkan Anda ingin menghapus bidang lokasi dari dokumen.

db.stores.aggregate([
  {
    $unset: "store.location"
  }
])

Contoh keluaran

[
  {
    "_id": "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5",
    "store": {
      "name": "Downtown Store",
      "sales": {
        "totalSales": 15000,
        "salesByCategory": [
          {
            "category": "Electronics",
            "totalSales": 5000
          },
          {
            "category": "Clothing",
            "totalSales": 10000
          }
        ]
      }
    }
  }
]

Contoh 2: Hapus Beberapa Bidang

Misalkan Anda ingin menghapus bidang lokasi dan sales.totalSales dari dokumen.

db.stores.aggregate([
  {
    $unset: ["store.location", "store.sales.totalSales"]
  }
])

Contoh keluaran

[
  {
    "_id": "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5",
    "store": {
      "name": "Downtown Store",
      "sales": {
        "salesByCategory": [
          {
            "category": "Electronics",
            "totalSales": 5000
          },
          {
            "category": "Clothing",
            "totalSales": 10000
          }
        ]
      }
    }
  }
]

Contoh 3: Hapus Bidang Berlapis

Misalkan Anda ingin menghapus bidang staff.totalStaff.fullTime dan promotionEvents.discounts dari dokumen.

db.stores.aggregate([
  {
    $unset: ["store.staff.totalStaff.fullTime", "store.promotionEvents.discounts"]
  }
])

Contoh keluaran

[
  {
    "_id": "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5",
    "store": {
      "name": "Downtown Store",
      "staff": {
        "totalStaff": {
          "partTime": 8
        }
      },
      "promotionEvents": ["Summer Sale", "Black Friday", "Holiday Deals"]
    }
  }
]