Di MySQL kita dapat dengan mudahnya mengeksekusi query hanya dengan sintaks GROUP BY. Tapi bagaimana cara mengeksekusinya di MongoDB? Nah kali akan saya bagikan model Grouping di MongoDB. Sebenarnya gak terlalu sulit.
Bagian-bagian dari group:
- key
- initial
- reduce
- condition
- finalize
Format di console:
db.coll.group({ key: { }, cond: { }, reduce: , initial: { } });
Daripada bingung. Contoh saya punya data sebagai berikut:
Data Utama |
Nah kalau di php kayak gini:
<? $connection= new Mongo(); $db=$connection->selectDB('si-klinik'); $ruang=$db->ruang; $reduce=new MOngoCode('function(obj,counter){ counter.count++; }'); $g=$db->ruang->group( array('nama_kamar'=>1), array('count'=>0), $reduce ); echo json_encode($g['retval']); ?>
Yang diblok kuning untuk menampilkan data hasil. Tampilannya sebagai berikut:
Hasil dengan tampilan Json |
Dan nggak mungkin kan anda menampilkan data dalam bentuk kayak gitu, kurang well aja. Nah biar keliatan bagus maka hapus kode tersebut dan tambahkan script html untuk menampilkan data hasil. Pastinya anda udah tahu.
<table border='1'> <tr align="center"> <th>No Kamar</th> <th>Frekuensi Penggunaan</th> </tr> <?php foreach ($g['retval'] as $data): ?> <tr> <td><?php echo $data['nama_kamar']; ?></td> <td><?php echo $data['count']; ?></td> </tr> <?php endforeach;?> </table>
Jadi script totalnya kayak gini dah:
<? $connection= new Mongo(); $db=$connection->selectDB('si-klinik'); $ruang=$db->ruang; $reduce=new MOngoCode('function(obj,counter){ counter.count++; }'); $g=$db->ruang->group( array('nama_kamar'=>1), array('count'=>0), $reduce ); ?> <table border='1'> <tr align="center"> <th>No Kamar</th> <th>Frekuensi Penggunaan</th> </tr> <?php foreach ($g['retval'] as $data): ?> <tr> <td><?php echo $data['nama_kamar']; ?></td> <td><?php echo $data['count']; ?></td> </tr> <?php endforeach;?> </table>
Tampilan dari script tersebut adalah:
Tampilan Hasil |
Mudah kan kawan. Monggo dicoba, jangan pernah malu untuk belajar. :)
0 Komentar