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
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');
Komentar
Posting Komentar