MongoDB - Query Document
Hai there, bakal pengurus pangkalan data! Hari ini, kita akan melangkah ke dunia yang menarik MongoDB dan belajar bagaimana untuk mencari dokumen. Sebagai guru komputer yang ramah di lingkungan sekitar anda, saya disini untuk memandu anda dalam perjalanan ini, langkah demi langkah. Jadi, pegang topi keras maya anda, dan mari kita mulai menjelajah!
Metode find()
Metode find()
adalah seperti mencari harta karun di MongoDB. Ia membantu kita mencari dokumen dalam koleksi. Bayangkan anda memiliki koleksi "students" di pangkalan data sekolah anda. Mari kita lihat bagaimana kita dapat menggunakan find()
untuk mengambil informasi.
db.students.find()
Baris kode sederhana ini akan mengembalikan semua dokumen dalam koleksi "students". Itu seperti meminta, "Tunjukkan semua murid!"
Tapi apa kalau kita ingin lebih spesifik? Misalnya, kita ingin mencari semua murid bernama "John":
db.students.find({name: "John"})
Query ini akan mengembalikan semua dokumen tempat field nama adalah "John". Itu seperti meminta, "Bolehkah anda tunjukkan semua John di kelas?"
Metode pretty()
Sekarang, mari kita membuat hasil kami terlihat rapi dan rapi dengan metode pretty()
. Itu seperti memberikan penampilan mewah pada data kita!
db.students.find().pretty()
Ini akan menampilkan hasil dalam cara yang diformat, membuatnya mudah bagi kita untuk membaca. Itu seperti mengatur kamar yang kacau anda - tiba-tiba segalanya terlihat lebih baik!
Metode findOne()
kadang-kadang, kita hanya ingin mencari satu dokumen. Itu di mana findOne()
berguna. Itu seperti memilih buah pertama dari pohon.
db.students.findOne({name: "Sarah"})
Ini akan mengembalikan dokumen pertama yang ditemukan tempat nama adalah "Sarah". Jika ada beberapa Sarah, ia hanya akan menunjukkan yang pertama yang ditemui.
Ekivalen klausa WHERE RDBMS di MongoDB
Sekarang, mari kita bandingkan query MongoDB dengan klausa WHERE SQL. Itu seperti menerjemahkan antara dua bahasa!
Klausa WHERE SQL | Ekivalen MongoDB |
---|---|
WHERE name = "John" | {name: "John"} |
WHERE age > 25 | {age: {$gt: 25}} |
WHERE age >= 25 | {age: {$gte: 25}} |
WHERE age < 25 | {age: {$lt: 25}} |
WHERE age <= 25 | {age: {$lte: 25}} |
WHERE age != 25 | {age: {$ne: 25}} |
AND di MongoDB
Dalam MongoDB, kita dapat menggabungkan syarat menggunakan logika AND. Itu seperti mengatakan, "Saya ingin ini DAN itu."
db.students.find({name: "John", age: 20})
Query ini akan mencari semua dokumen tempat nama adalah "John" DAN umur adalah 20.
OR di MongoDB
Kadang-kadang kita ingin mencari dokumen yang cocok dengan salah satu syarat OR yang lain. MongoDB juga menawarkan solusi untuk ini!
db.students.find({$or: [{name: "John"}, {age: 20}]})
Query ini akan mencari semua dokumen tempat nama adalah "John" OR umur adalah 20.
Menggunakan AND dan OR bersama
Kita bahkan dapat menggabungkan syarat AND dan OR. Itu seperti membuat peta harta karun kompleks!
db.students.find({
grade: "A",
$or: [{name: "John"}, {age: 20}]
})
Query ini akan mencari semua dokumen tempat nilai adalah "A" DAN (nama adalah "John" OR umur adalah 20).
NOR di MongoDB
NOR adalah seperti mengatakan "bukan ini dan bukan itu". Itu sebaliknya dari OR.
db.students.find({
$nor: [{name: "John"}, {age: 20}]
})
Query ini akan mencari semua dokumen tempat nama bukan "John" DAN umur bukan 20.
NOT di MongoDB
Akhirnya, kita memiliki operator NOT, yang seperti mengatakan "apa pun kecuali ini".
db.students.find({
name: {$not: {$eq: "John"}}
})
Query ini akan mencari semua dokumen tempat nama bukan "John".
Dan itu dia, murid-murid tercinta! Kita telah melintasi negeri query MongoDB, dari pencarian sederhana ke operasi logika kompleks. Ingat, latihan membuat sempurna, jadi jangan takut untuk mencoba query ini. Siapa tahu? Anda mungkin menemukan beberapa harta karun tersembunyi dalam data anda!
Sebelum kita selesai, mari kita punya quiz cepat. Bisakah anda menulis query untuk mencari semua murid yang berusia 18 tahun OR bernama "Emma" DAN memiliki nilai "B"? Cobalah, dan jangan lupa untuk menggunakan metode pretty()
untuk membuat hasil anda terlihat cantik!
Selamat mencari, bakal master pangkalan data!
Credits: Image by storyset