Mongoose

  • Post
    codeorayo
    Keymaster
    none
    Seperti dikatakan sebelumnya untuk memudahkan pemodelan data di MongoDB anda bisa memakai pustaka Mongoose. Meskipun sebenarnya Mongoose memakai objek JavaScript biasa dan mendukung banyak metode 

    Code:

    query

     data tetapi yang paling membedakan adalah Mongoose mendukung schema type dan validasi di level schema.

    Code:

    data:{type: schemaType}

    Schema TypeAda beberapa schema type yang didukung oleh pustaka ini yaitu

    • String

    • Number

    • Date

    • Boolean

    • Buffer (untuk data binary misalnya gambar, mp3 dll.)

    • Mixed (data dengan tipe apa saja)

    • Array

    • ObjectId


      Pemodelan DataLalu bagaimana Mongoose memodel data? ambil contoh misalnya dalam pengembangan aplikasi, data yang akan dipakai seperti berikut

      Code:

      var lokasiWisataKotaBatu = [{ nama: ‘Batu Night Square’,
      alamat: ‘Jl. Oro oro ombo 13, Tlekung’
      rating: 3,
      fasilitas: [‘Wahana bermain’,’Roller coaster’, ‘Taman lampion’]
      }]

      Dari data diatas dengan memakai Mongoose sangat mudah untuk diterjemahkan ke skema dan tipe data untuk tiap field

      Code:

      var lokasiWisataKotaBatuSchema = new mongoose.schema({ nama: String,
      alamat: String,
      rating: Number,
      fasilitas: [String]
      })

      Bagaimana dengan validasi data?. Jika anda lihat field data 

      Code:

      rating

       diatas dan umumnya mempunyai nilai antara 0 – 5 dan jika secara default diberi nilai 0 maka skema 

      Code:

      rating

       akan menjadi

      Code:

      rating: {type: Number, ‘default’: 0}

      Anda juga bisa memakai key 

      Code:

      required

       untuk menandakan bahwa field data tersebut bersifat wajib ada misalnya

      Code:

      nama: {type: String, required: true}

      Untuk lebih jelasnya silahakan lihat dokumentasi dari Validators Mongoose.

      Aplikasi node.js dengan database MongoDB yang memakai pustaka Mongoose dapat dikatakan mempunyai hubungan relasi satu-satu artinya dengan memakai model Mongoose berarti secara langsung aplikasi akan memakai data pada MongoDB.

      Kalau misalnya anda bekerja dengan database relasional MySQL maka anda akan memakai bahasa SQL seperti 

      Code:

      INSERT INTO table VALUES (field1=data)

       untuk memasukkan data sedangkan seperti anda ketahui jika dengan database NoSQL untuk menyimpan model object cukup dengan memakai metode misalnya 

      Code:

      model.save()

      . Dalam Mongoose untuk memakai model yang telah mempunyai schema seperti diatas

      Code:

      var LokasiModel = mongoose.model(‘Lokasi’, lokasiWisataKotaBatuSchema, ‘lokasiWisataBatu’)

      Kode diatas memberi arti bahwa aplikasi akan memakai model 

      Code:

      Lokasi

       dengan schema type yang telah di definisikan sebelumnya yaitu 

      Code:

      lokasiWisataKotaBatuSchema

       dan model ini akan di simpan pada koleksi data di MongoDB dengan nama koleksi adalah 

      Code:

      lokasiWisataBatu

      .

      Untuk memakai model 

      Code:

      Lokasi

       caranya adalah dengan menciptakan 

      Code:

      instance

       dari model tersebut

      Code:

      var lokasiModel = new LokasiModel()lokasiModel.nama = ‘Museum Angkut’
      lokasiModel.alamat = ‘Jl. Kembar 11’
      lokasiModel.rating = 5
      lokasiModel.fasilitas = [‘Restoran’, ‘Parkir luas’]

      Kemudian untuk menyimpan data tersebut ke dalam database MongoDB

      Code:

      lokasiModel.save(function(err){ if(!err) console.log(‘Data Disimpan!’)
      })

      Cukup mudah bukan dan memang pustaka ini bertujuan untuk memudahkan developer dalam pemodelan data terutama jika data yang akan dimodel mempunyai struktur yang rumit misalnya nested document. Untuk lebih lengkapnya silahkan anda mengunjungi situs resmi mongoosejs.com.

      ProjekBagi anda yang sudah mengerti gambaran umum dari pustaka Mongoose ini silahkan mengutak atik contoh projek sederhana yang memakai framework ExpressJS dan Mongoose, Person REST API.

      Code:

      https://idjs.github.io/belajar-nodejs/database/mongoose.html

    • You must be logged in to reply to this topic.