MongoDB Atlas:
The Developer Data Platform




Alfa Nugraha Pradana

Prodi Statistika dan Sains Data IPB University

Outline


  • Insert, Update, Delete Documents

  • Query

  • Atlas

  • Twitter for Developer

  • GitHub Actions

insertMany()

Membuat koleksi cities

db.createCollection('cities')


Bulk insert

db.cities.insertMany([
    {"name": "Seoul", "country": "South Korea", "continent": "Asia", "population": 25.674 },
    {"name": "Mumbai", "country": "India", "continent": "Asia", "population": 19.980 },
    {"name": "Lagos", "country": "Nigeria", "continent": "Africa", "population": 13.463 },
    {"name": "Beijing", "country": "China", "continent": "Asia", "population": 19.618 },
    {"name": "Shanghai", "country": "China", "continent": "Asia", "population": 25.582 },
    {"name": "Osaka", "country": "Japan", "continent": "Asia", "population": 19.281 },
    {"name": "Cairo", "country": "Egypt", "continent": "Africa", "population": 20.076 },
    {"name": "Tokyo", "country": "Japan", "continent": "Asia", "population": 37.400 },
    {"name": "Karachi", "country": "Pakistan", "continent": "Asia", "population": 15.400 },
    {"name": "Dhaka", "country": "Bangladesh", "continent": "Asia", "population": 19.578 },
    {"name": "Rio de Janeiro", "country": "Brazil", "continent": "South America", "population": 13.293 },
    {"name": "São Paulo", "country": "Brazil", "continent": "South America", "population": 21.650 },
    {"name": "Mexico City", "country": "Mexico", "continent": "North America", "population": 21.581 },
    {"name": "Delhi", "country": "India", "continent": "Asia", "population": 28.514 },
    {"name": "Buenos Aires", "country": "Argentina", "continent": "South America", "population": 14.967 },
    {"name": "Kolkata", "country": "India", "continent": "Asia", "population": 14.681 },
    {"name": "New York", "country": "United States", "continent": "North America", "population": 18.819 },
    {"name": "Manila", "country": "Philippines", "continent": "Asia", "population": 13.482 },
    {"name": "Chongqing", "country": "China", "continent": "Asia", "population": 14.838 },
    {"name": "Istanbul", "country": "Turkey", "continent": "Europe", "population": 14.751 }
])

Insert, Update, Delete Documents


Membuat dokumen baru ke dalam koleksi MongoDB

db.cities.insertOne({'_id' : 1, 'name':'Jakarta', 'country': 'Indonesia', 'continent': 'Asia', 'population': 10.56})


Mengupdate dokumen

db.cities.updateOne({'_id' : 1}, { $set: {'name':'Bandung', 'population': 2.5}})


Menghapus dokumen

db.cities.deleteOne({'_id':1})

Comparison Query Operators


Beberapa contoh operator yang bisa digunakan:

  • $gt :
db.cities.find({ population: { $gt: 25 } })
  • $lt :
db.cities.find({ population: { $lt: 14 } })
  • $in :
db.cities.find({ continent: { $in: ["Asia", "Africa"] }, population: {$lt: 15  } })


Operator Keterangan
$eq Membandingkan nilai yang sama dengan nilai lainnya.
$ne Membandingkan nilai yang tidak sama dengan nilai lainnya.
$gt Membandingkan nilai yang lebih besar dari nilai lainnya.
$gte Membandingkan nilai yang lebih besar atau sama dengan nilai lainnya.
$lt Membandingkan nilai yang lebih kecil dari nilai lainnya.
$lte Membandingkan nilai yang lebih kecil atau sama dengan nilai lainnya
$in Membandingkan nilai dengan nilai yang ada di array.
$nin Membandingkan nilai yang tidak ada dalam nilai yang ada di array.


Logical Query Operators


Beberapa contoh operator yang bisa digunakan:

  • $and :
db.cities.find({ 
  $and: [{
    continent: { $in: ["South America", "North America"] },
    population: { $gt: 20 }
  }]
})
  • $not :
db.cities.find({ 
  continent: {
    $not : { $in: ["Asia", "South America", "North America"]  }
  }
})


Operator Keterangan
$and Menggabungkan query dengan operasi AND
$or Menggabungkan query dengan operasi OR
$nor Menggabungkan query dengan operasi NOR
$not Membalikkan kondisi, mengembalikan documen yang tidak sesuai kondisi


Element Query Operators


  • $exists :
db.cities.find({ 
  continent: {
    $exists : false
  }
})
  • $type :
db.cities.find({ 
  population: {$type: ['double']  }
})


Operator Keterangan
$exists Mencocokkan dokumen yang memiliki field tersebut
$type Mencocokkan dokumen yang memiliki type field tersebut


Evaluation Query Operators


  • $expr :
db.cities.find({ 
  $expr : {
    $gt : ["population", 25]  
  }
})


Operator Keterangan
$expr Menggunakan aggregation operation
$jsonSchema Validasi document sesuai dengan JSON schema
$mod Melakukan operasi modulo
$regex Mengambil document sesuai dengan regular expression (PCRE)
$text Melakukan pencarian menggunakan text
$where Mengambil document dengan JavaScript Function


Query Modifier Function


  • count() :
db.cities.find({}).count()


db.cities.find({continent: "Asia"}).count()


Fungsi Keterangan
count() Mengambil jumlah data hasil query
limit(size) Membatasi jumlah data yang didapat dari query
skip(size) Menghiraukan data pertama hasil query sejumlah yang ditentukan
sort(query) Mengurutkan hasil data query


Atlas

Teknologi multi-cloud MongoDB sebagai platform pengembang data


Atlas tidak hanya bekerja sebagai DaaS (Database as a Service) pada umumnya. Atlas adalah sebuah platform lengkap bagi data developer. Berikut ini ada keunggulan dan fitur dari Atlas:

  • Backups with point-in-time restore
  • Online Archive
  • Operational insights
  • CLI and administration API
  • Atlas Search
  • Atlas Device Sync
  • Atlas Data Lake
  • Atlas Data Federation
  • Atlas Chart
  • Atlas App Services

Setting up

  1. Register MongoDB Atlas:

    https://www.mongodb.com/cloud/atlas/register

  2. Deploy Atlas Cluster

  3. Pengaturan user database dan alamat IP agar dapat diakses

  4. Penggunaan Atlas Data Explorer

Atlas Cluster Dashboard

Mengakses Atlas

Atlas Database

Twitter for Developer

GitHub Actions

Pertanyaan?