CRUD Operations adalah operasi dasar yang digunakan untuk mengolah data dalam sebuah database.CRUD terdiri dari Create, Read, Update dan Delete Operations.
1. CREATE OPERATIONS
Dalam MongoDB menyediakan 3 method/fungsi untuk insert dokumen dalam sebuah collectionantara lain :
• db.collection.insertOne()
• db.collection.insertMany()
• db.collection.insert()
Operasi insertOne() digunakan untuk menambahkan sebuah dokumen (single) ke dalam sebuah collection.
Contoh query insertOne() bisa dilihat pada contoh berikut ini
db.student.insertOne({name : “punyakreasi”, age: “5”,
hobbies : [“reading”,”travelling”]})
Fungsi insertMany() digunakan untuk menambahkan beberapa dokumen ke dalam sebuah collection.
Contoh query insertMany() bisa dilihat pada contoh berikut ini :
db.student.insertMany([
{name : “punyakreasi”, age: “5”, hobbies : [“reading”,”travelling”]},
{name : “creation”, age: “4”, hobbies : [“football”,”shopping”]},
{name : “kreatif”, age: “2”, hobbies : [“coding”,”travelling”]}
])
Fungsi insert() digunakan untuk menambahkan dokumen ke dalam sebuah collection baik berbentuk single dokumen maupun beberapa dokumen sekaligus.
Contoh query insert() dapat dilihat pada contoh berikut :
Single document :
db.student.insert({name : “punyakreasi”, age: “5”,
hobbies : [“reading”,”travelling”]})
Multiple document :
db.student.insertMany([
{name : “punyakreasi”, age: “5”, hobbies : [“reading”,”travelling”]},
{name : “creation”, age: “4”, hobbies : [“football”,”shopping”]},
{name : “kreatif”, age: “2”, hobbies : [“coding”,”travelling”]}
])
Untuk melihat dokumen yang berhasil diinputkan gunakan fungsi :
db.student.find()
Atau jika anda ingin mencari dokumen tertentu, misalkan yang namanya punyakreasi gunakan query berikut ini :
db.student.find({nama : “punyakreasi”})
2. READ OPERATIONS
1. Select All Document
Untuk menampilkan seluruh dokumen dalam sebuah collection maka digunakan query :
db.collection.find()
Atau jika menginginkan hasilnya memiliki tampilan yang lebih rapi gunakan query :
db.collection.find().pretty()
2. Specify Equality Condition
Untuk menampilkan dokumen berdasarkan nilai field tertentu, gunakan ekspresi <field> : <value> untuk memfilter dokumen, seperti query berikut :
db.collection.find(<query>)
Contoh implementasinya :
db.student.find(nama : “punyakreasi”)
3.Specify Conditions using Query Operators
Sebuah query untuk memfilter dokumen dapat menggunakan operator query {<field1> : {<operator1> : <value1>}, ... } dalam mendeklarasikan kondisi, seperti query berikut :
db.collection.find({
<field1> : {<operator1> : <value1>}, ...
})
Contoh implementasinya :
db.student.find({nama : {$in : [“punyakreasi”, “creation”]}})
4. Specify AND Conditions
Query majemuk (compound query) dapat menentukan kondisi untuk lebih dari satu field di dokumen dalam sebuah collection. Secara implisit, logika AND menghubungkan beberapa kriteria
query, dan akan menampilkan dokumen yang cocok dengan semua kondisi tersebut.
db.collection.find({
<field1> : <value1>,
<field2> : <value2>, ...
})
5. Specify OR Conditions
Dengan menggunakan operator OR, anda dapat menentukan query majemuk (compound query) yang merupakan gabungan beberapa kondisi dimana akan menampilkan dokumen yang memiliki kecocokan minimal satu kriteria.
db.collection.find({<operator> : [
<field1> : <value1>,
<field2> : <value2>, ...
]})
6.Specify AND serta OR Conditions
operator AND dan OR, dapat digunakan bersama dalam menentukan dokumen dalam sebuah collection. Querynya seperti berikut :
db.collection.find({
<field1> : <value1>, <field2> : <value2>,
<operator> : [
<field1> : <value1>, <field2> : <value2>, ...
]})
7. Match an Array
Field dalam sebuah collection tidak hanya menyimpan single value, namun juga mampu menyimpan nilai dalam bentuk array. Untuk menampilkan dokumen dimana field yang digunakan
sebagai kriteria menyimpan nilai array, antara lain :
db.collection.find({<field> : [<value1>,<value2>,...]})
Contoh implementasinya :
db.student.find({hobbies : [<reading>,<travelling>]})
Apabila ingin menampilkan dokumen dengan syarat field tersebut menampilkan minimal satu nilai (value) yang telah ditentukan, querynya seperti berikut :
db.collection.find({<field> : <value>})
Contoh implementasinya :
db.student.find({hobbies : <reading>})
8. Single Document
Fungsi untuk menampilkan satu dokumen dalam sebuah collection, maka digunakan query :
db.collection.findOne()
Contoh implementasinya sebagai berikut :
db.student.findOne()
3. UPDATE OPERATIONS
Dalam operasi update dikenal 2 fungsi antara lain :
• db.collection.updateOne(<filter>,<update>,<options>)
• db.collection.updateMany(<filter>,<update>,<options>)
Jika anda ingin mengubah sebuah dokumen (single), maka gunakan updateOne(), contoh querynya sebagai berikut :
db.student.updateOne(
{name : “punyakreasi”},
{
$set: {hobbies : “football”},
$currentDate : {updateTerakhir:true}
}
)
Fungsi $set digunakan untuk memberikan nilai baru di field sedangkan $currentDate digunakan untuk mengupdate nilai tanggal pada field updateTerakhir, akan otomatis diisi tanggal hari ini. Jika field tersebut tidak ada, maka secara otomatis akan terbuat. Jika anda ingin mengubah beberapa data sekaligus, maka gunakan fungsi updateMany() seperti contoh berikut ini :
db.inventory.updateMany(
{qty : {$lt : 50}},
{
$set: {item : “Restock Product”},
$currentDate : {updateTerakhir:true}
}
)
Artinya akan mengubah nilai dari field item menjadi “Restock Product” yang memiliki qty kurang dari 50.
Dalam operasi DELETE dikenal 2 fungsi antara lain :
• db.collection.deleteOne()
• db.collection.deleteMany()
Jika anda ingin menghapus maksimal satu dokumen dalam sebuah collection yang memenuhi kriteria (walaupun ada beberapa dokumen yang cocok dengan kriteria) gunakan fungsi deleteOne(), seperti berikut :
db.collection.deleteOne({<field> : <value>})
Jika anda ingin menghapus seluruh dokumen yang ada pada sebuah collection gunakan deleteMany(), seperti berikut ini :
db.collection.deleteMany()
Jika anda ingin menghapus beberapa dokumen dengan kriteria tertentu, maka gunakan query seperti berikut
db.collection.deleteMany({<field> : <value>})