Ads: Singset Premium Jekyll Theme. A beautiful and modern theme for Jekyll blog. Use code 2tv6qos to get $18 off your purchase!
11 Contoh Query MongoDB CRUD
- Terakhir diubahBerbeda dengan SQL, MongoDB ada cara query tersendiri untuk mengolah data. Tabel di MongoDB biasa disebut collection dan query untuk mencari data tertentu disebut sebagai criteria.
Untuk instalasi MongoDB dapat dilihat melalui postingan sebelumnya tentang cara instalasi dan menjalankan MongoDB.
Berikut ini adalah query MongoDB yang sering saya gunakan dan akan terus saya update jika ada yang baru.
Daftar Isi
- Mencari Data Dalam Suatu List atau Array Dengan dan Tanpa elemMatch
- Hapus Satu Baris
- Hapus Suatu Data Dalam List atau Array
- Ubah atau Update Data
- Mencari Data yang Tidak Memiliki Kolom Tertentu Atau Tidak Exists
- Mencari Kolom yang Exists, Namun Berisi Null
- Mencari Kolom yang Tidak Exists atau Berisi Null
- Mencari Kolom yang Exists dan Tidak Berisi Null
- Operator $nin
- Replace String Suatu Kolom Pada Semua Baris Dengan Criteria Tertentu
- Hapus Semua Baris Berdasarkan Criteria Tertentu
1. Mencari Data Dalam Array of Object Dengan dan Tanpa elemMatch
Misal ada kolom berisi data suatu array.
{
name: "Example Name",
description: [
{
language: "id",
detail: "contoh deskripsi"
},
{
language: "en",
detail: "example description"
}
]
}
Query MongoDB mencari detail description berisi “example description”.
db.getCollection('example_collection').findOne({"description.detail": "example description"})
Query diatas bisa juga diganti dengan elemMatch
dimana berdasarkan pengalaman memiliki performansi yang lebih baik ketika data kita banyak
db.getCollection('example_collection').find({description: {$elemMatch: {language: "id", detail: "contoh deskripsi"}}})
2. Hapus Satu Baris
Contoh query menghapus baris dengan menggunakan ID.
// Hapus satu baris
db.getCollection('example_collection').remove({_id: ObjectId("5bf70ac567f041b69724f910")})
// Hapus semua baris, tapi tidak menghapus collection / tabel
db.getCollection('example_collection').remove({})
3. Hapus Suatu Data Dalam List atau Array
Misal ada data seperti berikut:
{
name: "Example Name",
description: [
"hello",
"world"
]
}
Query MongoDB untuk menghilangkan “hello”.
db.getCollection('example_collection').update({ _id: ObjectId("5d892ab3e9e671026a904938")}, {$pull: {description: "hello"}})
4. Ubah atau Update Data
Query ubah data berdasarkan suatu ID dan mengubah isi dari exampleColumn
.
// update satu baris
db.getCollection('example_collection').updateOne({_id: ObjectId("5d8927e1a344a7b795a19746")}, {$set: {exampleColumn: "new value"}})
// update banyak baris
db.getCollection('example_collection').updateMany({someColumn: {$eq: null}}, {$set: {exampleColumn: "new value"}})
5. Mencari Data yang Tidak Memiliki Kolom Tertentu atau Tidak Exists
Dengan menggunakan {$exists: false}
dapat dicari semua baris yang tidak memiliki kolom tersebut.
db.getCollection('example_collection').find({name: "example", exampleColumn: {$exists: false}})
6. Mencari Kolom yang Exists, Namun Berisi Null
Query untuk mencari semua baris yang memiliki exampleColumn
berisi null
.
db.getCollection('example_collection').find({name: "example", exampleColumn: {$eq: null}})
7. Mencari Kolom yang Tidak Exists atau Berisi Null
Query berikut untuk mencari semua baris yang memiliki exampleColumn
berisi null
atau semua baris yang tidak memiliki exampleColumn
.
db.getCollection('example_collection').find({name: "example", exampleColumn: null})
8. Mencari Kolom yang Exists dan Tidak Berisi Null
Query untuk mencari semua baris yang memiliki exampleColumn
tidak berisi null
.
db.getCollection('example_collection').find({name: "example", exampleColumn: {$ne: null}})
9. Operator $nin
Operator untuk mencari yang “not in”, contohnya adalah sebagai berikut dimana digunakan query mencari semua baris yang memiliki tidak memiliki kolom name
berisi hello
dan world
.
db.getCollection('example_collection').find({name: {$nin: ["hello", "world"]}})
10. Replace String Suatu Kolom Pada Semua Baris Dengan Criteria Tertentu
Misal ada collection MongoDB dengan data sebagai berikut.
{
name: "Example MongoDB document",
description: [
{
language: "id",
detail: "contoh sub-dokumen MongoDB"
},
{
language: "en",
detail: "example sub-document MongoDB"
}
]
}
Berikut ini adalah contoh mencari semua description.detail
yang mengandung kata contoh dan diganti dengan example.
db.getCollection('example_document').find({"description.detail": /contoh/i}).forEach(function(myVar) {
myVar.description.detail = myVar.description.detail.replace("contoh", "example");
db.example_document.save(myVar);
});
11. Hapus Semua Baris Berdasarkan Criteria Tertentu
Dengan menggunakan contoh collection sebelumnya, berikut ini adalah contoh mencari semua description.detail
yang mengandung kata contoh dan menghapus baris tersebut.
db.getCollection('example_document').find({"description.detail": /contoh/i}).forEach(function(myVar) {
db.example_document.remove(myVar);
});
Rekomendasi Services
Service-service dibawah ini pernah dan sedang oleh KAK Labs saat mengembangkan project dan sangat direkomendasikan.
- Digital Ocean - Daftar server cloud di Digital Ocean melalui link ini akan mendapatkan kredit $200
- Bunny CDN - CDN favorit, yang KAK Labs gunakan disemua project
- Namecheap - Tempat beli domain .id terfavorit.
- Backblaze - Online Backup agar laptop jika terkena ransomware tetap tenang
- Dediserve - Cloud server ini memiliki Datacenter di Jakarta, digunakan oleh project KAK Tools
Tulisan Terbaru
HTML Boilerplate
HTML Boilerplate versi KAK Labs
No-Class / Classless CSS Frameworks
Daftar CSS frameworks tanpa class versi KAK Labs
Microsoft C#
Review, rekomendasi link belajar dan rekomendasi extensions Visual Studio Code untuk C#
Typography
Typography, 50 Bytes CSS, dan 100 Bytes CSS
Membangun Penyimpanan RAID 5 - Bagian 2 (Tamat)
Bagian kedua membangun penyimpanan RAID, tulisan kali fokus bagaimana setup HDD Enclosure untuk mode RAID