Query Lanjutan dan Aggregation MongoDB


🟒 1. Pengertian Query Lanjutan MongoDB

πŸ“Œ Pengertian

Query lanjutan MongoDB adalah teknik pencarian dan manipulasi data menggunakan operator, filter, aggregation, dan pipeline yang lebih kompleks.


πŸ“Œ Fungsi Query Lanjutan

  • Memfilter data kompleks
  • Analisis data
  • Statistik database
  • Pengelompokan data
  • Optimasi pencarian

πŸ–ΌοΈ Ilustrasi Query MongoDB

https://images.openai.com/static-rsc-4/ejoWa52SuE9PIKrkHyw1YGzlzyD4SpzFAMDRvNFWs41Pb1uI3W-HtrX3lQXGxpYYvWMOOAutxyg3w27h7d3eyoHvIIR2rWll4s7cmSA9ESfjtpGFFMUyPcIE0yeLy0CiRpPqYNwQKQJtaBLmFDwqxWguIW6ID5YP_gDNQbD6g6-Y76be04Rkpijt6VJLb82g?purpose=fullsize
https://images.openai.com/static-rsc-4/2AW7pZooUZ4zifYytxMwl6VvZS8qfOE8xfW7N-W9HC_YlFtil4ophloOMWXScVcifiw3USxDzuiEdv3GISOvux2Roy14QS9n3yrsOcfJT2eGvDYmY2SeKyQnhvFhrk9nVWkefYzs0aKTXz2rCOve1N6drstyF12MUMnR9JGu5x2-0RsMiwTOV-g9lOfJDPjL?purpose=fullsize
https://images.openai.com/static-rsc-4/yYYnx7VLa-LvOT98zI2hiFWvgWKd3zxrBqW9_VtDGQyQuzfNUsdsRmHMyaA2fkl67mszVgumrlv9a_IGWdXg2-PK8yjfJ2lb1CsHgJQQXUh80FQMR2xU3yRqig6Q5LlC5Vv2Di1r9-TFa3Ew3hfEIfcYAfP5gpUB2PC09qhXSAkDsE2T4O1iEwv5Pi_jsdWu?purpose=fullsize

8


πŸ” Narasi

Pada aplikasi modern, data tidak cukup hanya ditampilkan saja, tetapi perlu dianalisis, dihitung, dikelompokkan, dan difilter menggunakan query yang lebih kompleks.


🟑 2. Review Dasar Query MongoDB

πŸ“Œ Query Dasar find()

Menampilkan Semua Data

db.mahasiswa.find()

Menampilkan Berdasarkan Kondisi

db.mahasiswa.find({
jurusan: "Informatika"
})

πŸ“Œ Struktur Query

db.collection.find(
{ kondisi },
{ field }
)

πŸ–ΌοΈ Diagram Dasar Query MongoDB

https://images.openai.com/static-rsc-4/ijP9IubC7Dg8ex29OHeEi8dLbXyy8Kje-Vl7dL-iWhxwFt9WHDYP8BlUD1W7neuW_MZqmcDicfdBLnE-dlk52zBP6gecCp6AipiDjADzKhBPa-voCKYR2PxyiXbskwYrESULCOgVwwHZKNkuSqWowj7oiuBGQ8oBppvlk8rNTT45uo6a84XWqpItdw7M3nUV?purpose=fullsize
https://images.openai.com/static-rsc-4/S7-mEmi-6Zf7BncBDWf-D9Z2srlMxTWtdbe3Y3bLjrehGfkuqPU1EXkq_RAXPJQxrAJnYOqK5P3bWnGG8XkNSHebZRxtRwkIyn5XkJxxISNiM20CZ_QyCm2nA_uOBTykGWD7rblkMxFxIwGlV3GAISP33fbadMn_WrxH3wqIOZgUq5J3O7dGqbiwrwNz7nQ5?purpose=fullsize
https://images.openai.com/static-rsc-4/W5CzQBW_NyxqdP7OMxfU3PJB8JxXFZFItGun8gR-cspOShrHNAMhLs-mI2peqWhLSVDv2bTxyg7IzoYKRcE7qoDpomo7OHOu-GNKBAJN6DbUJYkYeepTxrKCM6L8ouUiMuPA0W55cvmrNuMHEcEitk6UN-Zb4ioPq2EKj139c2sk3dIrW7AjR40hPyreYooz?purpose=fullsize

7


πŸ” Narasi

Query dasar menjadi fondasi sebelum mempelajari query lanjutan dan aggregation.


🟑 3. Operator Perbandingan MongoDB

πŸ“Œ Jenis Operator

OperatorFungsi
$eqSama dengan
$neTidak sama
$gtLebih besar
$gteLebih besar sama dengan
$ltLebih kecil
$lteLebih kecil sama dengan

πŸŽ“ Contoh Operator $gt

db.mahasiswa.find({
semester: { $gt: 4 }
})

πŸŽ“ Contoh Operator $lte

db.mahasiswa.find({
semester: { $lte: 2 }
})

πŸ–ΌοΈ Ilustrasi Operator Query

https://images.openai.com/static-rsc-4/ZvlfZi5ATomp7IVGrFR3vGCWGtVmH0OINrefdi-nB3KAscid9sTzvXdYhp3NLLdURMsxLT4zwQRUYAO0lavZb5uuFHdXiB6x5WBGxiWe3tiH0qvrM56b7eqE-MWP_2YHxDUv586oxjZ3KbR1Smmve4VA8Ylv11gKCpNtngKG_TZrxnaQ4Vz9mu5gl4mscAby?purpose=fullsize
https://images.openai.com/static-rsc-4/KyzSP-AHwU9jI7k7i4Xcv1NX6yI4nCQsO-5R2eMlNI1BYFz6UsN6RT7I8y66c4NbcszFpbGhkpMqpGwV6j0rI9MZwYURd8rBkM7Wf7uFO3iGZz3BBoIirUipFlc0YwtVBAfo9pi8_g_qhjHeYaVACo7tdo2AnpKwr__JG_sYRZZ0I5rlo0R9v2QclIgcTKRe?purpose=fullsize
https://images.openai.com/static-rsc-4/IhiuPDuDfxfp8WKVmvUls4aUWcuMJ4w3w_MtZjpRJcsxHguci2BAmWQGOB5qG6e0xUiNwxhv2er6sObyso8S8e_TbF2vaV8Y6DUzpsAxzgpR7blILPCyub0nfNo4uOcCvMGiv6khdX28fRtvjuXJOIvMbbOZzwSfLWMZCTDZ7excjkuHnW-nzEN-wnYt5g55?purpose=fullsize

7


πŸ” Narasi

Operator perbandingan membantu proses filtering data berdasarkan kondisi tertentu.


🟑 4. Operator Logika MongoDB

πŸ“Œ Jenis Operator Logika

OperatorFungsi
$andDan
$orAtau
$notNegasi
$norBukan keduanya

πŸŽ“ Contoh Operator $and

db.mahasiswa.find({
$and: [
{ jurusan: "Informatika" },
{ semester: 4 }
]
})

πŸŽ“ Contoh Operator $or

db.mahasiswa.find({
$or: [
{ semester: 2 },
{ semester: 4 }
]
})

πŸ–ΌοΈ Diagram Operator Logika

https://images.openai.com/static-rsc-4/9CykvTQ8DYmOEpaOkbSWvlEXZ8yphrcZm0W5Z7eGWwdTSfHpcsc45LZis_FlA18yDBocC-MTvwTzqKdBgVfh1HanQB-M3rYM_qKBQMhKGILvKPnGc47eI_P5O8X-OhMwmnI9t0VVZOu7a9pd22C9wQ0OGlTGTHDUcJgmw-qV9TzbDOIPESEdkLGThb6_7sr9?purpose=fullsize
https://images.openai.com/static-rsc-4/hdgRdoXjXOJhbrX6lhOyJ1P4qe43VdKrzpgwjKeFfMxs8em0F8LmpH95YnqXDq62zKn6z7zd5jL3VcWjJqbR0jQ2fA0JbRhhQfutlRD4Tu3lwd7oqO4Bcg4jJQPk2O1zlLRHGXesIU-J_f0icp5lYPioqm6CvJph_ouDuyI4iW1U1fF_5l-phYXXXYv23ASp?purpose=fullsize
https://images.openai.com/static-rsc-4/ZvlfZi5ATomp7IVGrFR3vGCWGtVmH0OINrefdi-nB3KAscid9sTzvXdYhp3NLLdURMsxLT4zwQRUYAO0lavZb5uuFHdXiB6x5WBGxiWe3tiH0qvrM56b7eqE-MWP_2YHxDUv586oxjZ3KbR1Smmve4VA8Ylv11gKCpNtngKG_TZrxnaQ4Vz9mu5gl4mscAby?purpose=fullsize

6


πŸ” Narasi

Operator logika digunakan untuk membuat query yang lebih kompleks dan fleksibel.


🟑 5. Query Array MongoDB

πŸ“Œ Pengertian

MongoDB mendukung penyimpanan data berbentuk array.


πŸ“Œ Contoh Data Array

{
"nama": "Budi",
"hobi": ["Gaming", "Coding", "Membaca"]
}

πŸŽ“ Query Array

db.mahasiswa.find({
hobi: "Coding"
})

πŸ“Œ Operator Array

OperatorFungsi
$allSemua elemen
$inSalah satu elemen
$sizeJumlah elemen

πŸŽ“ Contoh $size

db.mahasiswa.find({
hobi: { $size: 3 }
})

πŸ–ΌοΈ Diagram Query Array MongoDB

https://images.openai.com/static-rsc-4/PBBAln5rIOyMSQRvegloLABeLRmFK2Knl_CRk08E1BSKuDrwt6ioT9CpelgA1qOgXnu8Gr-O9Aa0Btw5uU53Ll0fPdBvZru3CFVAA3Q_K4S1G8aAzo2SpVo5AAvOnSRXshUoh9gs2tsrCPwsA-B5VON9-sQblNGXysw7LbAPl0JlXOvo0ENOm-y5CRnqVqGZ?purpose=fullsize
https://images.openai.com/static-rsc-4/t0H49SGV824B924gddqy5KZuwALtOpegYoPvGiyVp8Wp5cjDicUvOtZTJuP65YMV4z5um0uO4wmoJEbhAiw1HE_p_J4_1HLt5GWkKWRu9KUkSgpGRJnydF4wx3BfV4n0g1_OaDbKhna007nj2Cd3a_Uqyx4unh0RyfdSqxyqCfjk94yYMV6lJF_wQo8LPoqZ?purpose=fullsize
https://images.openai.com/static-rsc-4/of2HuVfkcPjzEStMxzh5vWxjmdwI7Z1V2YoiVXQDll9douwFueEOepyLI2LtfvVVY3iItUMPLiGCGYtwRN47kGXWqT8kHObzbhO_FgpJJaYCyCh5eRe4E_YPTq-7RVRqHXDpxQKzfhOCs943EZ80TOj7C2DAkWmVeOVG4A6bjIwgda7XD24DjPNCzNeW-eND?purpose=fullsize

10


πŸ” Narasi

Array sangat sering digunakan pada aplikasi modern seperti media sosial dan e-commerce.


🟑 6. Projection pada MongoDB

πŸ“Œ Pengertian Projection

Projection digunakan untuk menentukan field yang ditampilkan.


πŸŽ“ Menampilkan Nama Saja

db.mahasiswa.find(
{},
{ nama: 1, _id: 0 }
)

πŸ“Œ Fungsi Projection

  • Mengurangi data output
  • Mempercepat query
  • Menghemat bandwidth

πŸ–ΌοΈ Ilustrasi Projection MongoDB

https://images.openai.com/static-rsc-4/0-FnegJyZiW9ORihtUt2yzOrl6mMrpniCePejD7dWog6G0jqPLbhmRxYXUG3pXOEMDy5dUyRFTwymvF5nAguv-KjqPs1inTgQu34_VXDBWGSxDXCbdRbqeLDO01V8rcMN_v_xKXrt2IdhEi4wFr5N-qpaF4WI5HD1Y7boqMjTllxHf6EIx1hdiiQMi4MDUWR?purpose=fullsize
https://images.openai.com/static-rsc-4/bXXSNLd1bU5eJfX3wwg8idyM4UKY24ADblzUf5mPx9F73Z9FIcRigBTS8FdtW_yfu4F14Cnvzfp2ZGmU1QZ9YGaq-XC3CCc-71dXx9wtRsG_MjAs1zi6C5-Ia-Iq348nlHYEFsTP_gmbO1s2eDRsp5piMxEwF1oHQKG7xgWY9IPfivQjIDbzjHAAapGtTZgo?purpose=fullsize
https://images.openai.com/static-rsc-4/oU0KkfkM5Ty1F6ZYI62VbjXLfdf2QicT7Pa_jhfZjVAVDPuXdS2jLXg0trsdNgRQEjw-RNMCk3YAEH3Af70E56Af8w_8-tnYSsbE0Q_mjzKMK8ra-CCwG9fTQjmFfl7BKPRvZTjxYL0zk7gZfWs3XhjxaPfDgDonmd_yOBBgMNug0Jay4C_XySmYhenj0dnW?purpose=fullsize

6


πŸ” Narasi

Projection sangat penting pada aplikasi besar untuk meningkatkan performa query.


🟑 7. Sorting dan Pagination

πŸ“Œ Sorting Data

Ascending

db.mahasiswa.find().sort({
semester: 1
})

Descending

db.mahasiswa.find().sort({
semester: -1
})

πŸ“Œ Pagination

Menggunakan limit()

db.mahasiswa.find().limit(5)

Menggunakan skip()

db.mahasiswa.find().skip(5)

πŸ–ΌοΈ Diagram Sorting dan Pagination

https://images.openai.com/static-rsc-4/v0pqPnRumatZaaABQIXg7luXyKN9-PGNc_IrMzt7fPAyI83yNsQ6vpxRoHJE8TtAHCVD_mz_7VKH1e-wx3wqb-V18xG9tvNglL5azpk1_xgIsTnsGj1X8gGyTq_FPQz6dN-WmSF7xzr2CdzXvEAqnEbqiFqdAz3O74b2GlHAJeTUKO3FKi510zQ3QOFf9IQB?purpose=fullsize
https://images.openai.com/static-rsc-4/y75ju-9gXLxv8jtZuc7ktqabefRgyGLtec9y14Qrdp-dIBIgie96Z0DG_yGtxPtx7ypI9Y3NxE0wmIxh4890NsYA_InRmMqSaJ7je_O2L09r-5bL6oljiFDEJvqiUNFhj5y9_Xz3cI_64cza8ouSB_kcdCbk0JqgyYGWIUyKDpxHUG0fExGZdPFLqo0vkvCg?purpose=fullsize
https://images.openai.com/static-rsc-4/koYMhuOUErgfd5BNPdvrEQLIK5rEXvtSoepSXU8fIgTVkXqhIaqFzODGduU_r8RJINqsEyiIOURndriXJR-I4vuqjP1N4uWVLJGedTk5pjDUVkp_mFHenqGY93T1J_eJ_eEVYR-9P7xn0i_rbweVg4fBEwLKaoKr3sW0P2_vlOzkkjRmZH1kOW_h4gQ3AbDr?purpose=fullsize

8


πŸ” Narasi

Pagination digunakan pada website modern untuk membagi data menjadi beberapa halaman.


🟑 8. Pengertian Aggregation MongoDB

πŸ“Œ Pengertian

Aggregation adalah proses pengolahan dan analisis data menggunakan pipeline.


πŸ“Œ Fungsi Aggregation

  • Statistik data
  • Pengelompokan
  • Perhitungan total
  • Analisis data
  • Transformasi data

πŸ–ΌοΈ Diagram Aggregation MongoDB

https://images.openai.com/static-rsc-4/ejoWa52SuE9PIKrkHyw1YGzlzyD4SpzFAMDRvNFWs41Pb1uI3W-HtrX3lQXGxpYYvWMOOAutxyg3w27h7d3eyoHvIIR2rWll4s7cmSA9ESfjtpGFFMUyPcIE0yeLy0CiRpPqYNwQKQJtaBLmFDwqxWguIW6ID5YP_gDNQbD6g6-Y76be04Rkpijt6VJLb82g?purpose=fullsize
https://images.openai.com/static-rsc-4/glZamiHIPwHDsRX_AgiWsKm2tQ8t5WKDmDRR6Pn7QnBdqDnbbNuRaL8yzru5eOFFO8LWHjTT2Lok4TIyjFEaanHaSU73v_Zjpq2mVB22F0Yb6YvzV5s9zohgdVXbtY0-4fFYrxx8pJWilJhTxI0T3GqGIY1pq-nsGpwSrH20Q7BaKTCn--OIto1EcjPA5QZ3?purpose=fullsize
https://images.openai.com/static-rsc-4/shJVMpIcq3bM2RkvPT-dWHEEVfOpJRIsTi7z26lidbasIXKCfBhIyA2W1-T45olK8X5RQmriRmQvk23XhrTBwp9uVgddDyCQ9O0IDRMYvfKTg44gXmgJNzLWcIL91q6X5MY4dSj0ZAt-PVgR8dVFI-2vL1o0stm3JcZvBxlGGsFQvMSP8Rw5nXoywPelkxJv?purpose=fullsize

11


πŸ” Narasi

Aggregation merupakan fitur penting MongoDB untuk kebutuhan data analytics dan reporting.


🟑 9. Konsep Aggregation Pipeline

πŸ“Œ Pengertian Pipeline

Pipeline adalah tahapan proses data pada aggregation.


πŸ“Œ Alur Pipeline

Data β†’ Filter β†’ Group β†’ Sort β†’ Output

πŸ“Œ Stage Aggregation

StageFungsi
$matchFilter data
$groupGrouping data
$sortMengurutkan
$projectMemilih field
$limitMembatasi data

πŸ–ΌοΈ Diagram Pipeline MongoDB

https://images.openai.com/static-rsc-4/JfOM0sHuXeG6N-terYL7kFINksFXJFi83R-1mTBp2op__4JCjkMKUlo-FDL-zGzjtsPeIJ7dvbXquktdH3a3vr3X_WChIPO1Q2PdOLQqWdyd8-k9Ampv1GGXBgJh2MsdpbW5JNYS_Zexz15eCjEPY3PbcZZBcyseRT_6sUSghhT69ekqQCDo5c_V02hsrujj?purpose=fullsize
https://images.openai.com/static-rsc-4/8KqNTypmXnxz6zOSwg9xr8kro9UQnCo_OGjGLzMWrX_jSI2e4rKQJ5e9hJyASueR2fjbvalNqXfsNtojcCgsSaxMmfoshBzccIAqeFP86ZZytFK63oaHPJ_RDelEgkIz9lPyP_Nq1c_cJfnAVO_kA2ZilJ-ymWajpnk3d06Ir_IFVTro67UOi027SOoZoNqZ?purpose=fullsize
https://images.openai.com/static-rsc-4/myUEAW41ESXZOD3qxEawOg2I-4M0lHWFD1lfp_EReX9PR4bdYS3B6O1XuMwNIaOrEWuA5oSBGzuxGVGzrLCcK7yQsBDqUc0DCXcxurTX8eabZeuXj-nqJL2Uw3w7oHERErM3lEeyC7Aev_k_1aqoqErMaPoSUZEoSiMMVJCXczLDyuNok3XXfW55FGqh_YuE?purpose=fullsize

8


πŸ” Narasi

Aggregation pipeline bekerja seperti jalur produksi data yang diproses secara bertahap.


🟑 10. Aggregation dengan $match

πŸ“Œ Fungsi

$match digunakan untuk filtering data.


πŸŽ“ Contoh $match

db.mahasiswa.aggregate([
{
$match: {
jurusan: "Informatika"
}
}
])

πŸ–ΌοΈ Tutorial Aggregation Match

https://images.openai.com/static-rsc-4/xp_utmjpblJ6eZQwvvX11skeo2vU0zX_m6A5srvbAK8i5_DX5HtN6meS1MOILMnV3jR7Wr4Sw7me6B-QJsDkcIYVFiHbiazm81lkMetUo8jwDhh-Dbenirkz6VkbpbUxTEGcMX5QuyFhvCaQR_-ZQudwa4B19pCU0ahA4CTeBtUVD8TSfIWbilefcesGV4gl?purpose=fullsize
https://images.openai.com/static-rsc-4/Qmm8aBLWV4qliQikLqYgCs2WdLB_SGTGRGozmilDd9BqjR_mU5O-GHB70UKCGePaQmuWHwrIfJiUoLCpNMpgPHLAjNYn7UEdCR_AYyIJdB9FGQ-381hSD7dyFHKaojpL4guXv-5bOF9U60fkrbNrF8igSeqMaAHaFk1CkoZ_TiGaEYEEHMLHVx8_jWVKJ7wr?purpose=fullsize
https://images.openai.com/static-rsc-4/SYJ495Z1WgbFVDGpbzSQj56Q_iQBj28eokUGLokdZwzwQUhWKh8RAp4kucqXamuG0ai96xldOZFVBT8GHlzWzyP9FPym8NvxzEH6FmU6XK0hN0JkEkiw9Sre-aGkknkJbh5jiIvvboYIu1OaDaEgRjE6EIEW7d2hJdi2zChG0t-7a-i0dY2fBU7m2jqaq0uN?purpose=fullsize

8


πŸ” Narasi

$match biasanya digunakan pada tahap awal aggregation untuk mengurangi jumlah data yang diproses.


🟑 11. Aggregation dengan $group

πŸ“Œ Fungsi

$group digunakan untuk mengelompokkan data.


πŸŽ“ Menghitung Jumlah Mahasiswa per Jurusan

db.mahasiswa.aggregate([
{
$group: {
_id: "$jurusan",
total: { $sum: 1 }
}
}
])

πŸ“Œ Operator Aggregation

OperatorFungsi
$sumPenjumlahan
$avgRata-rata
$maxNilai maksimum
$minNilai minimum

πŸ–ΌοΈ Diagram Group Aggregation

https://images.openai.com/static-rsc-4/xp_utmjpblJ6eZQwvvX11skeo2vU0zX_m6A5srvbAK8i5_DX5HtN6meS1MOILMnV3jR7Wr4Sw7me6B-QJsDkcIYVFiHbiazm81lkMetUo8jwDhh-Dbenirkz6VkbpbUxTEGcMX5QuyFhvCaQR_-ZQudwa4B19pCU0ahA4CTeBtUVD8TSfIWbilefcesGV4gl?purpose=fullsize
https://images.openai.com/static-rsc-4/W-dxonHp2DKA0NjsLwP_EVKHDZYr74dKuUZOCltBVsMB1BPoVChgOVxcI2MD1dbiOsxomX5vzKBwFiyjanKI9aiDh5_l5uA4eUDXGj_VZMUwX4uxaMZ1L98ax-RmmbscI5FLu7-dng1rna8iAD8L6CmPonS1049jh6v9DNEze15f3rF0KWNg8Xi7pBHSakK5?purpose=fullsize
https://images.openai.com/static-rsc-4/koG1puoDWUMJ8B3IKTZHfpw1ryYCfwrLXupfbq3y9X3mMeuGBU3PV1VIKPrq8H5KX79A51-9o92fG182vvNnK1BDUh13qZrCk1IP20521SHcKe0YDXN06Uq_gVfLpYep84S8owpTlyH1ixRp0py9a5cRQvT7bzOWEIbKvew7kOa9C6W8twyaj44_a5bcbuZP?purpose=fullsize

7


πŸ” Narasi

$group digunakan untuk kebutuhan statistik dan laporan data.


🟑 12. Aggregation dengan $project

πŸ“Œ Fungsi

$project digunakan untuk menentukan field output.


πŸŽ“ Contoh $project

db.mahasiswa.aggregate([
{
$project: {
nama: 1,
jurusan: 1,
_id: 0
}
}
])

πŸ–ΌοΈ Tutorial Project Aggregation

https://images.openai.com/static-rsc-4/G7QIcDJevE-DArFH3bUy1fDov3OwuDpZSBUFoNfXHk1QuW_zQu_s4UYbWhloiXOZX-Tt1gSgJ3-7lVM6QrR61IloBk6bQMAeqCTbTGfyqJiX-734ZxroiUTVmnF8ZXXGQ74MLf6tCvJZ3agbUcDW5LMXv-aLFiDVjAomW_kriC52pP8tzRgB3c8oVT98UrGR?purpose=fullsize
https://images.openai.com/static-rsc-4/8KqNTypmXnxz6zOSwg9xr8kro9UQnCo_OGjGLzMWrX_jSI2e4rKQJ5e9hJyASueR2fjbvalNqXfsNtojcCgsSaxMmfoshBzccIAqeFP86ZZytFK63oaHPJ_RDelEgkIz9lPyP_Nq1c_cJfnAVO_kA2ZilJ-ymWajpnk3d06Ir_IFVTro67UOi027SOoZoNqZ?purpose=fullsize
https://images.openai.com/static-rsc-4/xp_utmjpblJ6eZQwvvX11skeo2vU0zX_m6A5srvbAK8i5_DX5HtN6meS1MOILMnV3jR7Wr4Sw7me6B-QJsDkcIYVFiHbiazm81lkMetUo8jwDhh-Dbenirkz6VkbpbUxTEGcMX5QuyFhvCaQR_-ZQudwa4B19pCU0ahA4CTeBtUVD8TSfIWbilefcesGV4gl?purpose=fullsize

6


πŸ” Narasi

$project membantu membentuk output data sesuai kebutuhan aplikasi.


🟑 13. Aggregation dengan $sort dan $limit

πŸ“Œ $sort

Mengurutkan hasil aggregation.


πŸŽ“ Contoh

db.mahasiswa.aggregate([
{
$sort: {
semester: -1
}
}
])

πŸ“Œ $limit

Membatasi hasil data.


πŸŽ“ Contoh

db.mahasiswa.aggregate([
{
$limit: 5
}
])

πŸ–ΌοΈ Diagram Sort dan Limit Aggregation

https://images.openai.com/static-rsc-4/SzlSU9NMbCq4HsSrwG37cUZda0BSO0AwniwgqlyoZu_-nwdExcaXObHko4VhD9yqVL1LZDcqOlyB_cacriCUhPV0rMPL2H5t3HbB5dyd5JQQTs2z3R3RPbIF8qqDxYwsQGXaee1kl3Lq42zNmSpYdSTSUsdRmi1Xl5JpuFnhvQIjlkADyf1WoQB3_gebmqzJ?purpose=fullsize
https://images.openai.com/static-rsc-4/RX3SNU6DtRFkNdBtOkQv-ChXmNEfQ2ToTFkIUWT6qrJNidg5GBBRfRRg8n2NAGbUbI5OBFVD46c4t2up3UL2s_QliDQ7rI6sVM0B8ms6rDSfkhz-9-fR87A3t-5bcshGqLEqngqqWWkF8kQ0_tV9_N-hkPqTuQBQj9fuCwt0G9SuIjFapu4Dl0mU_aZKj41f?purpose=fullsize
https://images.openai.com/static-rsc-4/-gp03CbzBbY0MB63718cnhRYOsZQqq0G7Mk9z9PFQHvtjVX62rByHvinsSXmPvAM8cEhpvNLsnzGEIc37MOfqCjbel79fH88lRYWfY-FjfGH9LQDyW_pdGY5Tc5czm9frRmcJkCo6Pi5ER7y3SgZL6tlN5Efj3E4SBNS3qmHKoZlwHd5gGLjBuwGuG8WMP9I?purpose=fullsize

8


πŸ” Narasi

$sort dan $limit membantu optimasi tampilan data dan performa query.


🟑 14. Studi Kasus Aggregation MongoDB

πŸ“Œ Kasus Sistem Akademik

Menghitung Jumlah Mahasiswa per Jurusan

db.mahasiswa.aggregate([
{
$group: {
_id: "$jurusan",
jumlah_mahasiswa: {
$sum: 1
}
}
}
])

πŸ“Œ Kasus E-Commerce

Menghitung Total Penjualan

db.penjualan.aggregate([
{
$group: {
_id: "$produk",
total_penjualan: {
$sum: "$jumlah"
}
}
}
])

πŸ–ΌοΈ Studi Kasus Data Analytics

https://images.openai.com/static-rsc-4/002UeoNawrSRMoX6R8mkFpkrydMgNQ22YPLLk8QxhrB2ck5GAR2SMIK-92OymO5Cyrhiuvq4EXUqZ5eup6g8-vORdkbH-SUGuloOOvSdTlY4h25TwfR-TY2vyvRVD2yVrCN1KmWEXQLgdjc5v3kAjOfnVKjvIAeQslS7W_0xflVFXYd3UzrVkYEgD7pWF72g?purpose=fullsize
https://images.openai.com/static-rsc-4/mQqINk4mAuwLX7eObEecNhbwMxO8BzAiIjwkLY0ZGOAyg8r1EchfUFVofJbkY1Tw7rwmTNX6T5piNC_DGGo3mi5TTAJc8fsQBY8wCldq0hTrMhDdrSV3q8_ILp3efhyH64SeCB3cfRZEOHcnR4pCapT_F_GnVikKxFMQsJibZ8sspBsojQxpvIu6J29nMFi1?purpose=fullsize
https://images.openai.com/static-rsc-4/lk_YeYU9k8VXdsO_zGDrL2k8tyD8n-lX1Za4PHMx_10NK6GNKjCktFTFCUuJtafpM22hoHM6UtBgeeRs3s6bTAvurteR1C4VLTcfY1gYoSiOy2xl4McjEEZJqDFpOHwhGCLXw9p27y_B8OmKlh9cXxTYc2Bm6QJEG1LyQJ2U0JCxg94IflDomlRtoo8cS53n?purpose=fullsize

6


πŸ” Narasi

Aggregation banyak digunakan pada:

  • Dashboard
  • Reporting
  • Business intelligence
  • Big data analytics

🟑 15. Optimasi Query MongoDB

πŸ“Œ Teknik Optimasi

  • Menggunakan indexing
  • Projection field
  • Filter awal menggunakan $match
  • Membatasi data menggunakan limit()

πŸ“Œ Contoh Index

db.mahasiswa.createIndex({
jurusan: 1
})

πŸ–ΌοΈ Diagram Optimasi Query

https://images.openai.com/static-rsc-4/SzlSU9NMbCq4HsSrwG37cUZda0BSO0AwniwgqlyoZu_-nwdExcaXObHko4VhD9yqVL1LZDcqOlyB_cacriCUhPV0rMPL2H5t3HbB5dyd5JQQTs2z3R3RPbIF8qqDxYwsQGXaee1kl3Lq42zNmSpYdSTSUsdRmi1Xl5JpuFnhvQIjlkADyf1WoQB3_gebmqzJ?purpose=fullsize
https://images.openai.com/static-rsc-4/bXXSNLd1bU5eJfX3wwg8idyM4UKY24ADblzUf5mPx9F73Z9FIcRigBTS8FdtW_yfu4F14Cnvzfp2ZGmU1QZ9YGaq-XC3CCc-71dXx9wtRsG_MjAs1zi6C5-Ia-Iq348nlHYEFsTP_gmbO1s2eDRsp5piMxEwF1oHQKG7xgWY9IPfivQjIDbzjHAAapGtTZgo?purpose=fullsize
https://images.openai.com/static-rsc-4/bXXSNLd1bU5eJfX3wwg8idyM4UKY24ADblzUf5mPx9F73Z9FIcRigBTS8FdtW_yfu4F14Cnvzfp2ZGmU1QZ9YGaq-XC3CCc-71dXx9wtRsG_MjAs1zi6C5-Ia-Iq348nlHYEFsTP_gmbO1s2eDRsp5piMxEwF1oHQKG7xgWY9IPfivQjIDbzjHAAapGtTZgo?purpose=fullsize

10


πŸ” Narasi

Optimasi query sangat penting pada database besar agar performa tetap cepat dan efisien.


🟒 16. Implementasi Query dan Aggregation di Dunia Industri

πŸ“Œ Penggunaan

  • Dashboard akademik
  • Laporan keuangan
  • Analitik e-commerce
  • Media sosial
  • Business intelligence

πŸ“Œ Contoh Analisis

  • Jumlah pengguna aktif
  • Produk terlaris
  • Statistik transaksi
  • Analisis perilaku pengguna

πŸ–ΌοΈ Implementasi Analytics MongoDB

https://images.openai.com/static-rsc-4/shJVMpIcq3bM2RkvPT-dWHEEVfOpJRIsTi7z26lidbasIXKCfBhIyA2W1-T45olK8X5RQmriRmQvk23XhrTBwp9uVgddDyCQ9O0IDRMYvfKTg44gXmgJNzLWcIL91q6X5MY4dSj0ZAt-PVgR8dVFI-2vL1o0stm3JcZvBxlGGsFQvMSP8Rw5nXoywPelkxJv?purpose=fullsize
https://images.openai.com/static-rsc-4/M2S28h_1xfOtNXneD9_pG8vp5BuEChfZAscc1tMqwZEgaXByNVz6RzuhlhCqQSWtnabW1E5hXZbkwUoN74SJsKGof3eb6SCExKbx3QND69Uj_B2x3WYkUTyruxYkhcP1FVH2HO4LeUrM1n1PTP83FSC4oFwJMWKq75SjmdGl72WxjA1rMgR5hnxFP4HU2qnZ?purpose=fullsize
https://images.openai.com/static-rsc-4/-utBqwxBxkQqr42965BmvST724U9-qT1E4rYh6r49klS7AX_TTq7Aa2ePsXWpULwNfW6O0LEqVpfVSj5VhsCoyxZ2QqCbLYCuwWFS7GL95neg2csHnYprLk3-3dsfQ91CQOOocxXO1caimtie6Fb-AEPp_wncHLaBjH5hb7_6h1taNMRK2nB01TphfBKpb85?purpose=fullsize

8


πŸ” Narasi

MongoDB aggregation menjadi fondasi penting dalam sistem analitik modern.


🟒 17. Kesimpulan

πŸ“Œ Ringkasan Materi

  • Query lanjutan digunakan untuk pencarian data kompleks
  • Aggregation digunakan untuk analisis data
  • Pipeline memproses data bertahap
  • $group digunakan untuk statistik
  • Optimasi query penting untuk performa

πŸ–ΌοΈ Diagram Ringkasan Aggregation MongoDB

https://images.openai.com/static-rsc-4/xp_utmjpblJ6eZQwvvX11skeo2vU0zX_m6A5srvbAK8i5_DX5HtN6meS1MOILMnV3jR7Wr4Sw7me6B-QJsDkcIYVFiHbiazm81lkMetUo8jwDhh-Dbenirkz6VkbpbUxTEGcMX5QuyFhvCaQR_-ZQudwa4B19pCU0ahA4CTeBtUVD8TSfIWbilefcesGV4gl?purpose=fullsize
https://images.openai.com/static-rsc-4/phDMmj6iHlHpace_sWTwENkUq2cBtnLu97hEc3zSXesYJLAJin-omiX1dSseew1xJ1ZKWpa-OjHh3W2ME7_qRRNWsw_mou_JSc0VyS8DCnrxzMDrICma5XRf3CriEVGtYSyNRTBvEI5z9ZGEJf2KQnObcVNSkPOpKKxM0OzTUUY1i9dsW450Dv9okN_BaDFa?purpose=fullsize
https://images.openai.com/static-rsc-4/Qmm8aBLWV4qliQikLqYgCs2WdLB_SGTGRGozmilDd9BqjR_mU5O-GHB70UKCGePaQmuWHwrIfJiUoLCpNMpgPHLAjNYn7UEdCR_AYyIJdB9FGQ-381hSD7dyFHKaojpL4guXv-5bOF9U60fkrbNrF8igSeqMaAHaFk1CkoZ_TiGaEYEEHMLHVx8_jWVKJ7wr?purpose=fullsize

8


🎯 Latihan & Diskusi

  1. Apa yang dimaksud query lanjutan?
  2. Jelaskan fungsi operator $gt!
  3. Apa fungsi projection?
  4. Jelaskan konsep aggregation pipeline!
  5. Apa fungsi $group?
  6. Jelaskan fungsi $match!
  7. Mengapa indexing penting?
  8. Sebutkan implementasi aggregation di dunia industri!