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.