Operator Pembanding

 1. 

Operator Pembanding MongoDB: Memahami dan Menggunakan dengan Efektif

MongoDB adalah database NoSQL yang sangat populer, dikenal karena fleksibilitas dan kemudahan penggunaannya. Salah satu fitur kunci yang membuat MongoDB begitu kuat adalah kemampuannya untuk menggunakan operator pembanding dalam query. Artikel ini akan membahas jenis-jenis operator pembanding yang tersedia di MongoDB dan memberikan contoh penggunaannya.

Apa itu Operator Pembanding?

Operator pembanding adalah simbol atau kata kunci yang digunakan dalam query untuk membandingkan nilai. Dalam konteks MongoDB, operator ini memungkinkan pengguna untuk melakukan pencarian data yang lebih kompleks berdasarkan kriteria tertentu.

Jenis-Jenis Operator Pembanding di MongoDB

Berikut adalah beberapa operator pembanding yang paling umum digunakan:

  1. $eq (Equal)

    • Memeriksa apakah dua nilai sama.
  2. $ne (Not Equal)

    • Memeriksa apakah dua nilai tidak sama.
  3. $gt (Greater Than)

    • Memeriksa apakah nilai di sisi kiri lebih besar dari nilai di sisi kanan.
  4. $gte (Greater Than or Equal)

    • Memeriksa apakah nilai di sisi kiri lebih besar atau sama dengan nilai di sisi kanan.
  5. $lt (Less Than)

    • Memeriksa apakah nilai di sisi kiri lebih kecil dari nilai di sisi kanan.
  6. $lte (Less Than or Equal)

    • Memeriksa apakah nilai di sisi kiri lebih kecil atau sama dengan nilai di sisi kanan.
  7. $in (In)

    • Memeriksa apakah suatu nilai ada dalam array nilai yang diberikan.
  8. $nin (Not In)

    • Memeriksa apakah suatu nilai tidak ada dalam array nilai yang diberikan.

Contoh Penggunaan Operator Pembanding

Mencari Produk dengan Harga Lebih Besar dari 500

Mencari semua produk yang memiliki harga lebih dari 500.

Mencari Produk yang Dilepas Sebelum Tanggal Tertentu

Mencari semua produk yang dirilis sebelum tanggal 1 Januari 2015.

Mencari Produk dengan Warna Tertentu

Mencari semua produk yang memiliki warna "white" atau "black".

Mencari Produk yang Tidak Sama dengan Harga Tertentu

Mencari semua produk yang tidak memiliki harga 799.





2. 


3.


4.


5. 


6.


7.



8. 



9. 



10. 



11. 



12. 



13. Buat Folder Baru dengan nama Index.php dan masukkan kode berikut
<!DOCTYPE html>
<html>
<head>
    <title>Aplikasi CRUD Buku</title>
</head>
<body>
    <h1>Aplikasi CRUD Buku</h1>
   
    <?php
    // Inisialisasi koneksi MongoDB
    try {
        $mongo = new MongoDB\Driver\Manager("mongodb://localhost:27017");
    } catch (MongoDB\Driver\Exception\Exception $e) {
        echo "Koneksi MongoDB gagal: " . $e->getMessage();
        exit;
    }

    if (isset($_POST['tambah'])) {
        // Operasi tambah buku
        $judul = $_POST['judul'];
        $tahun = (int)$_POST['tahun'];

        $bulk = new MongoDB\Driver\BulkWrite;
        $bulk->insert(['judul' => $judul, 'tahun' => $tahun]);

        $result = $mongo->executeBulkWrite('perpustakaan.buku', $bulk);
        if ($result) {
            header("Location: index.php");
        }
    } elseif (isset($_GET['hapus'])) {
        // Operasi hapus buku
        $id = new MongoDB\BSON\ObjectId($_GET['hapus']);

        $bulk = new MongoDB\Driver\BulkWrite;
        $bulk->delete(['_id' => $id]);

        $result = $mongo->executeBulkWrite('perpustakaan.buku', $bulk);
        if ($result) {
            header("Location: index.php");
        }
    } elseif (isset($_POST['edit'])) {
        // Operasi edit buku
        $id = new MongoDB\BSON\ObjectId($_POST['id']);
        $judul = $_POST['judul'];
        $tahun = (int)$_POST['tahun'];

        $bulk = new MongoDB\Driver\BulkWrite;
        $bulk->update(['_id' => $id], ['$set' => ['judul' => $judul, 'tahun' => $tahun]]);

        $result = $mongo->executeBulkWrite('perpustakaan.buku', $bulk);
        if ($result) {
            header("Location: index.php");
        }
    }
    ?>

    <h2>Tambah Buku</h2>
    <form method="post" action="index.php">
        <label for="judul">Judul:</label>
        <input type="text" name="judul" required>
        <label for="tahun">Tahun:</label>
        <input type="number" name="tahun" required>
        <button type="submit" name="tambah">Tambah</button>
    </form>

    <h2>Daftar Buku</h2>
    <table border="1">
        <tr>
            <th>Judul</th>
            <th>Tahun</th>
            <th>Aksi</th>
        </tr>
        <?php
        $query = new MongoDB\Driver\Query([]);
        $result = $mongo->executeQuery('perpustakaan.buku', $query);

        foreach ($result as $buku) {
            echo "<tr>";
            echo "<td>" . (isset($buku->judul) ? $buku->judul : "N/A") . "</td>";
            echo "<td>" . (isset($buku->tahun) ? $buku->tahun : "N/A") . "</td>";
            echo "<td><a href='index.php?edit=" . $buku->_id . "'>Edit</a> | <a href='index.php?hapus=" . $buku->_id . "'>Hapus</a></td>";
            echo "</tr>";
        }
        ?>
    </table>

    <?php
    if (isset($_GET['edit'])) {
        $id = new MongoDB\BSON\ObjectId($_GET['edit']);
        $query = new MongoDB\Driver\Query(['_id' => $id]);
        $result = $mongo->executeQuery('perpustakaan.buku', $query);

        foreach ($result as $buku) {
            ?>
            <h2>Edit Buku</h2>
            <form method="post" action="index.php">
                <input type="hidden" name="id" value="<?php echo $buku->_id; ?>">
                <label for="judul">Judul:</label>
                <input type="text" name="judul" value="<?php echo isset($buku->judul) ? $buku->judul : ''; ?>" required>
                <label for="tahun">Tahun:</label>
                <input type="number" name="tahun" value="<?php echo isset($buku->tahun) ? $buku->tahun : ''; ?>" required>
                <button type="submit" name="edit">Simpan Perubahan</button>
            </form>
            <?php
        }
    }
    ?>
</body>
</html>


14. Bukan dan Jalankan Xampp

15. Buka Localhost melalui browser





KUIS

• Konvert 4 perintah $eq diatas ke query MySQL
• Tampilkan products collection (name & price) yang price lebih
besar sama dengan ($gte) 799
• Tampilkan products collection (name & storage) yang storage
lebih besar sama dengan ($gte) 512
• Tampilkan products collection (name & spec.screen) yang
screen (in spec) lebih kecil ($le) dari 7
• Tampilkan products collection (name & releaseDate) yang
releaseDate sebelum ($le) 2015-01-01



1. SELECT name, price
    FROM products
    WHERE price >= 799;

2. SELECT name, storage
    FROM products
    WHERE JSON_UNQUOTE(JSON_EXTRACT(storage, '$[0]')) >= 512 OR
      JSON_UNQUOTE(JSON_EXTRACT(storage, '$[1]')) >= 512 OR
      JSON_UNQUOTE(JSON_EXTRACT(storage, '$[2]')) >= 512;


3. SELECT name
    FROM products
    WHERE screen < 7;  -- Assuming you have a column named screen directly in the products table




4.SELECT name, releaseDate
    FROM products
    WHERE releaseDate < '2015-01-01';




Kesimpulan

Operator pembanding di MongoDB adalah alat yang sangat berguna untuk menyaring dan mengambil data sesuai dengan kebutuhan spesifik. Dengan memahami cara menggunakan operator ini, Anda dapat membuat query yang lebih efektif dan mendapatkan informasi yang relevan dari database Anda.

Dengan berbagai jenis operator yang tersedia, Anda memiliki fleksibilitas untuk membangun query yang sesuai dengan skenario yang Anda hadapi. Selamat mencoba dan semoga artikel ini bermanfaat!






Komentar