Grouping Pada MongoDB

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

Data tersebut terdiri dari 3 Kamar Melati dan 2 kamar Mawar. Key dari data itu adalah nama kamar, initial adalah jumlahnya.
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. :)

Posting Komentar

0 Komentar