Backup Restore MongoDB

Para pengguna database MySQL, PostgreSQL, Oracle atau Relational Database lainnya pasti sudah tidak asing dengan yang namanya Backup dan Restore Database, atau istilah lainnya Export/Import Database. Untuk proses Export/Import database pada kebanyakan relational database populer saat ini sangatlah mudah, terlebih banyak sekali perangkat lunak untuk mengelola database tersebut baik bawaan dari vendornya maupun dari pihak ketiga. Bagaimana dengan database NoSQL seperti MongoDB yang terbilang masih cukup baru? Untungnya para developer MongoDB sudah berbaik hati menyediakan tools bawaan untuk melakukan hal tersebut. Bagaiman caranya? Let's see below!

Tools bawaan yang disediakan MongoDB untuk Export dan Import database ini masih berupa Command Line.

Tapi jangan khawatir, caranya sangatlah mudah dan sederhana.

Export Collection

Skema perintahnya sebagai berikut:

mongoexport -h <mongodb_host> --port <mongodb_port> -d <database_name> -c <collection_name> -o /path/to/backup/filename.json  

Contoh di Windows:

mongoexport -h 127.0.0.1 --port 27017 -d akademik -c mahasiswa -o C:backupmahasiswa.json  

Contoh di Linux / MacOS:

mongoexport -h 127.0.0.1 --port 27017 -d akademik -c mahasiswa -o /home/mongodb/mahasiswa.json  

Export kedalam format CSV:

mongoexport -h 127.0.0.1 --port 27017 -d akademik -c mahasiswa --csv -f "nama,NPM,jurusan,Fakultas" -o /home/mongodb/mahasiswa.csv  
Import Collection

Skema perintahnya sebagai berikut:

mongoimport -h <mongodb_host> --port <mongodb_port> -d <database_name> -c <collection_name> -o /path/to/backup/filename.json  

Kita bisa menggunakan opsi --drop jika kita menginginkan untuk menghapus collection yang sudah ada, seperti berikut ini:

mongoimport -h <mongodb_host> --port <mongodb_port> -d <database_name> -c <collection_name> -o /path/to/backup/filename.json --drop  

Sangat mudah bukan? Untuk referensi lengkapnya bisa ditemui di halaman dokumentasi MongoDB.

Semoga bermanfaat. Jika ada pertanyaan silahkan tuliskan di kolom komentar dibawah. See you next time.

Halo, saya adalah seorang pengajar dan pengembang aplikasi, khususnya aplikasi web. Profil saya dapat ditemukan di Twitter dan Github.