Tutorial NodeJS Part 10 : Query di MongoDB

Tutorial NodeJS 10 : Query di MongoDB

Pada MongoDB tersedia penggunaan query yang bertujuan untuk mempermudah melakukan filter data, Biasanya filter digunakan ketika kita hendak menampilkan data yang diinginkan seperti menu search dalam website misalnya. Fungsi query ini tidak terlepas dari penggunaan dari find().


Seperti biasa kita akan memakai database perpustakaan dan tabel/collection author, silahkan kalian lihat tutorial-tutorial yang dulu.

Kita lanjut pembahasan kali ini dengan membuat file query.js

C:\Users\RSAM\Documents\nodejs_tutorial\mongodb>vim query.js

Masukan script di bawah ini

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017";

MongoClient.connect(url, { useNewUrlParser: true }, function(err, db){
if(err) throw err;
var dbo = db.db("perpustakaan");
var query = { email : "kaka@gmail.com" };
dbo.collection("author").find(query).toArray(function(err, result){
if(err) throw err;
console.log(result);
db.close();
});
});

Jalankan perintah "node query".

C:\Users\RSAM\Documents\nodejs_tutorial\mongodb>node query

[
{
_id: 5e7da7106dc62c0fb8abdb58,
nama: 'Kaka',
email: 'kaka@gmail.com',
tanggal_lahir: 2020-02-18T13:00:00.000Z
}
]

Query Filter dengan Regular Expression

Kita bisa memanfaatkan regular expression untuk melakukan filter tertentu misalnya melakukan filter nama seseorang dengan nama depan "M", klo di MySQL fungsi LIKE.

Buat file query_reg.js

C:\Users\RSAM\Documents\nodejs_tutorial\mongodb>vim query_reg.js 

Masukan script dibawah.

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, { useNewUrlParser: true }, function(err, db){
if(err) throw err;
var dbo = db.db("perpustakaan");
var query = { nama: /^K/ };
dbo.collection("author").find(query).toArray(function(err, result){
if(err) throw err;
console.log(result);
db.close();
});
});

Jalankan perintah "node query_reg" 

C:\Users\RSAM\Documents\nodejs_tutorial\mongodb>node query_reg

[
{
_id: 5e7da7106dc62c0fb8abdb58,
nama: 'Kaka',
email: 'kaka@gmail.com',
tanggal_lahir: 2020-02-18T13:00:00.000Z
}
]

Operator AND dan OR

Dalam MongoDB penciptaan Query bisa melibatkan AND dan OR, hal ini akan bermanfaat ketika kita membandigkan beberapa kondisi pada sebuah query. Untuk AND anda cukup memberikan tanda "," (koma) sedangkan untuk OR menggunakan $or.

AND
Contoh :

var query = { "email": /@gmail/, "nama":/Kaka/ };

OR
Biar lebih seru kita buat lagi tabel/collection baru dengan nama buku di database perpustakaan, yang lupa silahkan baca lagi Tutorial CRUD Di MongoDB. setelah di buat tabelnya kita masukan data seperti dibawah ini.

{ "_id" : ObjectId("5e7f6a59e966e652696e1299"), "judul" : "Tutorial NodeJS", "penerbit" : "gramedia", "harga" : 100000 }
{ "_id" : ObjectId("5e7f6aa2e966e652696e129a"), "judul" : "Tutorial MongoDB", "penerbit" : "gramedia", "harga" : 120000 }
{ "_id" : ObjectId("5e7f6ab2e966e652696e129b"), "judul" : "Tutorial PHP", "penerbit" : "mediainfo", "harga" : 50000 }
{ "_id" : ObjectId("5e7f6af3e966e652696e129e"), "judul" : "Tutorial MySQL", "penerbit" : "mediainfo", "harga" : 40000 }

Baca Juga - Tutorial NodeJS Part 8 : Multiple Insert Di MongoDB

Kita lanjut ke pembahasan operator OR, Sebagai contoh kita ingin menampilkan judul buku dengan harga dibawah 60.000 dan judul depannya adalah "T".

Buat file operator_or.js 


C:\Users\RSAM\Documents\nodejs_tutorial\mongodb>vim operator_or.js

dan masukan script dibawah.


var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";

MongoClient.connect(url, {useNewUrlParser: true }, function(err, db){
if(err) throw err;
var dbo = db.db("perpustakaan");
var query = { harga:{ $lt: 60000 }, $or:[{"judul":/^T/}] };
dbo.collection("buku").find(query).toArray(function(err, result){
if(err) throw err;
console.log(result);
db.close();
})
});

Jalakan perintah "node operator_or"


C:\Users\RSAM\Documents\nodejs_tutorial\mongodb>node operator_or

[
{
_id: 5e7f6ab2e966e652696e129b,
judul: 'Tutorial PHP',
penerbit: 'mediainfo',
harga: 50000
},
{
_id: 5e7f6af3e966e652696e129e,
judul: 'Tutorial MySQL',
penerbit: 'mediainfo',
harga: 40000
}
]


Sort di MongoDB

Terakhir kita akan membahas tentang Sorting atau pengurutan data documents, misalkan kita ingin urutkan dari abjad, nomer dan sebagainya. Atau mungkin kalau di MySQL itu Ascending atau Descending. Siapkan file bernama sort_asc.js dan masukan script dibawah.

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017";

MongoClient.connect(url, {useNewUrlParser: true }, function(err, db){
if(err) throw err;
var dbo = db.db("perpustakaan");
var defsort = { _id: 1 };

dbo.collection("buku").find().sort(defsort).toArray(function(err, result){
if(err) throw err;
console.log(result);
db.close();
});
});



LihatTutupKomentar