Bab ini memperkenalkan sintaks kueri dasar MongoDB melalui shell mongo. Di shell mongo, metode db.collection.find()
digunakan untuk mengkueri data.
Menyiapkan data uji
Masukkan beberapa data ke dalam koleksi inventaris.
db.inventory.insertMany([
{ item: "jurnal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
{ item: "buku catatan", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A" },
{ item: "kertas", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
{ item: "pencatat", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
{ item: "kartu pos", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }
]);
Mengkueri semua dokumen
Mengkueri semua dokumen dalam koleksi inventaris, {} mewakili kondisi kueri kosong.
db.inventory.find( {} )
Sama seperti pernyataan SQL berikut:
SELECT * FROM inventaris
Kondisi kueri kesetaraan
Sintaks:
{ field: value, ... }
Contoh 1:
db.inventory.find( { status: "D" } )
Sama seperti pernyataan SQL berikut:
SELECT * FROM inventaris WHERE status = "D"
Contoh 2: Kueri bidang bersarang, gunakan titik (.) untuk menghubungkan bidang dari dokumen bersarang.
db.inventory.find( { "size.uom": "in" } )
Sama seperti pernyataan SQL berikut:
SELECT * FROM inventaris WHERE size.uom = "in"
Catatan: Dokumen MongoDB disimpan dalam format JSON, sehingga mendukung penggunaan bidang bersarang sebagai kondisi kueri.
Menggunakan operator kueri
MongoDB mendukung beragam operator kueri untuk melaksanakan berbagai kueri kompleks. Sintaks:
{ <field1>: { <operator1>: <value1> }, ... }
Penjelasan:
- field1: nama bidang
- operator1: operator
- value1: parameter operator
Contoh dari operator $in:
db.inventory.find( { status: { $in: [ "A", "D" ] } } )
Sama seperti pernyataan kueri SQL dengan operator "in":
SELECT * FROM inventaris WHERE status in ("A", "D")
Catatan: Untuk detail operator, silakan merujuk ke bagian selanjutnya mengenai detail kueri MongoDB.
Kondisi dan
Mirip dengan SQL, MongoDB juga mendukung kondisi dan.
Contoh:
// Masukkan beberapa kondisi secara berurutan, dan hubungkan kondisi menggunakan dan
db.inventory.find( { status: "A", item: "kartu pos"} )
Sama seperti pernyataan SQL berikut:
SELECT * FROM inventaris WHERE status = "A" AND item = "kartu pos"
Kondisi atau
Mirip dengan SQL, MongoDB juga mendukung kondisi atau, yang diimplementasikan melalui operator $or.
Sintaks:
{
$or: [
{kondisi1},
{kondisi2},
.....
]
}
Contoh:
db.inventory.find( { $or: [ { status: "A" }, { item: "kartu pos"} ] } )
Sama seperti pernyataan SQL berikut:
SELECT * FROM inventaris WHERE status = "A" OR item = "kartu pos"
Menggabungkan kondisi dan dan atau
Mirip dengan SQL, MongoDB dapat menggabungkan kondisi kueri kompleks menggunakan dan dan atau.
Contoh:
db.inventory.find( {
status: "A",
$or: [ { qty: { $lt: 30 } }, { item: /^p/ } ]
} )
Di sini, operator $lt untuk kurang dari dan pencocokan ekspresi reguler digunakan.
Ini mirip dengan pernyataan SQL berikut:
SELECT * FROM inventaris WHERE status = "A" AND ( qty < 30 or item like 'p%')
Tip: Untuk penjelasan detail kondisi kueri MongoDB, silakan merujuk ke bab-bab berikutnya.