🌐
Miniclass Web
  • Miniclass Web
  • 1. Pengenalan Pemrograman Web
    • Cara Kerja Website
    • Pengenalan Backend dan Frontend
    • HTTP Request dan HTTP Response
  • 2. HTML
    • Pengenalan HTML
    • Text Formatting
    • Link
    • Media
    • List
    • Table
    • Form
    • Grouping
  • 3. CSS
    • Pengenalan CSS
    • Selector CSS
    • Text Formatting
    • Background
    • Border
    • Height dan Width
    • Spacing
    • Layouting
    • Responsive Design
    • Membuat Template Web Responsive
  • 4. Javascript
    • Pengenalan JavaScript
    • Javascript for Java developer
    • Array
    • Fungsi
    • Manipulasi DOM
    • Event
    • Fetch API
    • Object JavaScript
    • UI Component Lanjutan
  • 5. Node.js
    • Pengenalan Node.js
    • Membuat Server HTTP
    • Routing
    • Import Export
    • Node Package Manager
    • Nodemon
  • 6. Express.js
    • Pengenalan Express.js
    • HTTP Method
    • Menerima Data dari URL
    • Middleware
    • Menerima Data dari Body
    • Mengunggah File
    • Menampilkan File dalam Folder
    • Menyimpan Data ke Database MySQL
  • 7. Modern Frontend Development
    • ECMAScript
    • Transpiler
    • Module Bundler
  • 8. React Fundamental
    • Pengenalan React JS
    • Props
    • Event
    • State
    • Conditional Rendering
    • Component Mapping
    • Side Effect
    • Custom Hook
  • 9. React State Management
    • Lifting State Up
    • Context
    • Reducer
  • 10. React Performance
    • Debounce
    • Throttling
    • Memoization
    • Profiling
  • 11. React Testing
    • Component Testing
    • Hook Testing
    • Mocking
    • End to End Testing
  • 12. Object Relational Mapping
    • Pengenalan Object Relational Mapping
  • 13. Document Oriented Database
    • Document Oriented Database
    • Object Document Mapping
  • 14. Web Service
    • REST
    • GraphQL
  • 15. Autentikasi
    • JSON Web Token
    • Membuat Web Service Sederhana
  • 16. Microservices
    • Microservices
    • Microservices Gateway
    • Message Queue
    • Remote Procedure Call
    • Membuat Micro Service Sederhana
  • 18. Caching
Powered by GitBook
On this page
  • 1. Penjelasan Singkat
  • 2. Penerapan ODM dengan Mongoose
  • 2.1. Installasi
  • 2.2. Mengkoneksikan Mongoose ke Database
  • 2.3. Membuat Model
  • 2.4. Melakukan Operasi CRUD dengan Mongoose
  • 3. Referensi

Was this helpful?

  1. 13. Document Oriented Database

Object Document Mapping

PreviousDocument Oriented DatabaseNextREST

Last updated 4 years ago

Was this helpful?

1. Penjelasan Singkat

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

2. Penerapan ODM dengan Mongoose

2.1. Installasi

# Menginstall mongoose
npm install mongoose

2.2. Mengkoneksikan Mongoose ke Database

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!
})

2.3. Membuat Model

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)

2.4. Melakukan Operasi CRUD dengan Mongoose

2.4.1. Create Document

Mahasiswa.create({
  name: 'Mnindrazaka',
  address: 'Probolinggo',
  age: 19
}, function(err, mahasiswa) {
  if (err) return console.error(err)
  console.log(mahasiswa)
})

2.4.2. Read Document

Mahasiswa.find(function(err, mahasiswa) {
  if (err) return console.error(err)
  console.log(mahasiswa)
})

//Akan mengoutputkan semua document yang berada di dalam collection Mahasiswa

2.4.3. Update Document

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
  }
)

2.4.4. Delete Document

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
  }
)

3. Referensi

Untuk melihat seluruh source code penerapan ODM menggunakan mongoose, silahkan kunjungi link berikut

https://github.com/wrideveloper/express-mongo-webservice