Apps Artificial Intelligence CSS DevOps Go JavaScript Laravel Linux MongoDB MySQL PHP Python Rust Vue

Menggunakan Agregasi MongoDB untuk Membangun Struktur Kategori Hierarkis

1 min read .
Menggunakan Agregasi MongoDB untuk Membangun Struktur Kategori Hierarkis

Dalam pengembangan aplikasi, sering kali diperlukan pengelolaan dan tampilan struktur kategori hierarkis, seperti kategori induk, subkategori, dan sub-subkategori. MongoDB menyediakan alat yang sangat berguna untuk tugas ini melalui Kerangka Kerja Agregasi, khususnya dengan tahap $graphLookup. Artikel ini menjelaskan bagaimana Anda dapat menggunakan agregasi MongoDB untuk membangun struktur kategori hierarkis dari data yang tersimpan dalam koleksi.

1. Struktur Data

Contoh data kategori dalam koleksi MongoDB:

{ "_id" : 1, "cat_id" : 1, "title" : "Parent Category", "parent" : null }
{ "_id" : 2, "cat_id" : 2, "title" : "Child Category", "parent" : 1 }
{ "_id" : 3, "cat_id" : 3, "title" : "Sub Child Category", "parent" : 2 }

Penjelasan singkat:

  • Parent Category → kategori induk.
  • Child Category → subkategori dari Parent Category.
  • Sub Child Category → sub-subkategori dari Child Category.

2. Menggunakan $graphLookup untuk Membangun Struktur Kategori

Tahap $graphLookup memungkinkan pencarian rekursif di dalam koleksi, sehingga sangat berguna untuk membangun hierarki kategori.

Contoh pipeline agregasi:

db.categories.aggregate([
  {
    $match: { "parent": null }
  },
  {
    $graphLookup: {
      from: "categories",
      startWith: "$_id",
      connectFromField: "_id",
      connectToField: "parent",
      as: "subCategory"
    }
  }
])

Penjelasan:

  • $match: { "parent": null } → Menyaring kategori induk (tanpa parent).

  • $graphLookup → Melakukan pencarian rekursif subkategori.

    • from → Koleksi yang digunakan untuk pencarian (sama, categories).
    • startWith → Titik awal pencarian (_id kategori induk).
    • connectFromField → Bidang dari dokumen awal (_id).
    • connectToField → Bidang di dokumen yang dicari (parent).
    • as → Nama bidang baru untuk hasil pencarian (subCategory).

3. Hasil Agregasi

Hasil pipeline di atas akan menampilkan struktur kategori hierarkis beserta semua subkategori terkait:

{ 
  _id: 1,
  cat_id: 1,
  title: 'Parent Category',
  parent: null,
  subCategory: [
    { _id: 2, cat_id: 2, title: 'Child Category', parent: 1 },
    { _id: 3, cat_id: 3, title: 'Sub Child Category', parent: 2 }
  ]
}

Dengan hasil ini, Parent Category memiliki bidang subCategory yang mencakup semua subkategori terkait.

4. Kesimpulan

Kerangka Kerja Agregasi MongoDB dengan $graphLookup memungkinkan Anda membangun dan menampilkan struktur kategori hierarkis secara efisien. Pendekatan ini sangat bermanfaat untuk mengelola data hierarkis di aplikasi, dan dapat diterapkan dalam banyak konteks, seperti e-commerce, sistem manajemen konten, dan aplikasi lainnya.

chevron-up