ODM (Oobject Document Mapping) memiliki fungsi yang sama dengan ORM (Object Relational Mapping), perbedaannya hanya terletak pada jenis database yang digunakan, dimana ODM digunakan untuk Document Oriented Database sedangkan ORM digunakan untuk Relational Database
# Menginstall mongoose
npm install mongoose
Tentukan nama database yang akan dihubungkan ke aplikasi terlebih dahulu, misal: test
const mongoose = require('mongoose')
mongoose.connect('mongodb://localhost/test')
Untuk mengecek apakah database telah berhasil terhubung atau belum, bisa menggunakan perintah di bawah ini
const db = mongoose.connection
db.on('error', console.error.bind(console, 'connection error:'))
db.once('open', function() {
// we're connected!
})
Semisal kita ingin membuat collection dengan nama mahasiswa. Terlebih dahulu kita harus membuat sebuah Schema.
const mahasiswaSchema = new mongoose.Schema({
name: String,
address: String,
age: Number
})
Lalu compile Schema diatas menjadi sebuah Model
const Mahasiswa = mongoose.model('Mahasiswa', mahasiswaSchema)
Mahasiswa.create({
name: 'Mnindrazaka',
address: 'Probolinggo',
age: 19
}, function(err, mahasiswa) {
if (err) return console.error(err)
console.log(mahasiswa)
})
Mahasiswa.find(function(err, mahasiswa) {
if (err) return console.error(err)
console.log(mahasiswa)
})
//Akan mengoutputkan semua document yang berada di dalam collection Mahasiswa
Mahasiswa.findOneAndUpdate(
{
nama: 'Mnindrazaka'
//Mencari semua document yang memiliki atribut nama bernilai Mnindrazaka
},
{
nama: 'Aka'
//Merubah nilai dari atribut nama menjadi Aka
},
{
new: true
//return document yang telah terupdate
},
function(err, mahasiswa) {
if (err) return console.error(err)
console.log(mahasiswa)
//Mengoutputkan semua document yang diupdate
}
)
Mahasiswa.findOneAndRemove(
{
nama: 'Mnindrazaka'
//Mencari semua document yang memiliki atribut nama bernilai Mnindrazaka dan menghapusnya
},
function(err, res) {
if (err) return console.error(err)
console.log('data telah terhapus')
//Mengoutputkan semua document yang didelete
}
)
Untuk melihat seluruh source code penerapan ODM menggunakan mongoose, silahkan kunjungi link berikut https://github.com/wrideveloper/express-mongo-webservice