MongoDB "Operator Logika"

 Operator Logika

    Operator Logika memungkinkan Anda untuk menggabungkan beberapa kondisi untuk memfilter data sesuai dengan kebutuhan Anda. Artikel ini akan membahas berbagai jenis Operator Logika MongoDB, memberikan contoh penggunaan, dan membandingkannya dengan perintah SQL yang serupa.


 Jenis Operator Logika MongoDB

Ada beberapa jenis Operator Logika yang dapat digunakan dalam MongoDB untuk menggabungkan kondisi pencarian. Beberapa di antaranya adalah:

1. $and: Operator ini digunakan untuk menggabungkan beberapa kondisi yang semuanya harus benar. Hasilnya adalah dokumen yang memenuhi semua kondisi.

2. $or: Operator ini digunakan untuk menggabungkan beberapa kondisi, di mana setidaknya satu kondisi harus benar. Hasilnya adalah dokumen yang memenuhi salah satu atau semua kondisi.

3. $not: Operator ini digunakan untuk menggabungkan kondisi yang membalik hasilnya. Dengan kata lain, hasilnya adalah dokumen yang tidak memenuhi kondisi yang diberikan.

4. $nor: Operator ini digunakan untuk menggabungkan beberapa kondisi, di mana tidak satupun dari kondisi yang diberikan harus benar. Hasilnya adalah dokumen yang tidak memenuhi semua kondisi.


Contoh Operator Logika MongoDB

1. Menggunakan $and :






2.  Menggunakan $or :



3. Menggunakan $not




















4. Menggunakan $nor :




5. Menggunakan $exist :






























KUIS :

Buat database baru bernama e-commerce





buat tabel product dan product color pada database tersebut menggunakkan query berikut :

CREATE TABLE products (

    id INT NOT NULL,

    name VARCHAR(255) NOT NULL,

    price DECIMAL(10, 2),

    releaseDate DATE,

    ram INT,

    screen DECIMAL(4, 2),

    cpu DECIMAL(4, 2),

    color VARCHAR(255),

    storage INT

);

 

CREATE TABLE product_colors (

    product_id INT,

    color VARCHAR(255),

    FOREIGN KEY (product_id) REFERENCES products(id)

);








Setelah tabel selesai dibuat, isi datanya sesuai perintah dibawah : 

INSERT INTO products (id, name, price, releaseDate, ram, screen, cpu, storage)

VALUES

    (1, 'xPhone', 799.00, '2011-05-14', 4, 6.5, 2.66, 64),

    (2, 'xTablet', 899.00, '2011-09-01', 16, 9.5, 3.66, 128),

    (3, 'SmartTablet', 899.00, '2015-01-14', 12, 9.7, 3.66, 16),

    (4, 'SmartPad', 699.00, '2020-05-14', 8, 9.7, 1.66, 128),

    (5, 'SmartPhone', 599.00, '2022-09-14', 4, 9.7, 1.66, 128),

    (6, 'xWidget', NULL, NULL, 64, 9.7, 3.66, 1024),

    (7, 'xReader', NULL, NULL, 64, 6.7, 3.66, 128);

 

INSERT INTO product_colors (product_id, color)

VALUES

    (1, 'white'),

    (1, 'black'),

    (2, 'white'),

    (2, 'black'),

    (2, 'purple'),

    (3, 'blue'),

    (4, 'white'),

    (4, 'orange'),

    (4, 'gold'),

    (4, 'gray'),

    (5, 'white'),

    (5, 'orange'),

    (5, 'gold'),

    (5, 'gray'),

    (6, 'black'),

    (7, 'black'),

    (7, 'white');


maka ada 2 tabel yang dihasilkan sebagai berikut :






1. Menggunakan $and (SQL):

SELECT name, price, color

FROM products

JOIN product_colors ON products.id = product_colors.product_id

WHERE price = 899

AND color IN ('white', 'black');




2. Menggunakan $or (SQL):

SELECT name, price

FROM products

WHERE price = 799 OR price = 899;





SELECT name, price

FROM products

WHERE price < 699 OR price > 799;





3. Menggunakan $not (SQL):

SELECT id AS _id, name, price

FROM products

WHERE price IS NULL OR NOT (price > 699);





SELECT name

FROM products

WHERE name NOT REGEXP '^Smart+';






4. Menggunakan $nor (SQL):

SELECT name, price, color

FROM products

LEFT JOIN product_colors ON products.id = product_colors.product_id

WHERE (price IS NULL OR price != 899) AND (color IS NULL OR color != 'gold');






















5. Menggunakan $exists (SQL):

SELECT name, price

FROM products

WHERE price IS NOT NULL OR price IS NULL;









SELECT name, price

FROM products

WHERE price IS NOT NULL AND price > 699;






SELECT name, price

FROM products

WHERE price IS NULL;



Komentar

Postingan populer dari blog ini

Open Source Intelligence (OSINT)

Mengenal MongoDB For VSCode

GETTING STARTED WITH MATPLOTLIB & SEABORN