Latest web development tutorials

hubungan MongoDB

Hubungan MongoDB menyatakan keterkaitan antara beberapa dokumen dalam logika.

Anda dapat menjalin kontak dengan melekatkan dan referensi antara dokumen.

Hubungan MongoDB dapat:

  • 1: 1 (1 to 1)
  • 1: N (1-banyak)
  • N: 1 (beberapa pasang 1)
  • N: N (banyak ke banyak)

Selanjutnya kita mempertimbangkan hubungan antara pengguna dan alamat pengguna berikutnya.

Seorang pengguna dapat memiliki beberapa alamat, itu adalah salah satu hubungan banyak.

Berikut ini adalah dokumen konfigurasi pengguna yang sederhana:

{
   "_id":ObjectId("52ffc33cd85242f436000001"),
   "name": "Tom Hanks",
   "contact": "987654321",
   "dob": "01-01-1991"
}

Berikut ini adalah dokumen alamat struktur sederhana:

{
   "_id":ObjectId("52ffc4a5d85242602e000000"),
   "building": "22 A, Indiana Apt",
   "pincode": 123456,
   "city": "Los Angeles",
   "state": "California"
} 

hubungan tertanam

Dengan menggunakan metode tertanam, kita bisa menanamkan alamat pengguna untuk dokumen pengguna:

   "_id":ObjectId("52ffc33cd85242f436000001"),
   "contact": "987654321",
   "dob": "01-01-1991",
   "name": "Tom Benzamin",
   "address": [
      {
         "building": "22 A, Indiana Apt",
         "pincode": 123456,
         "city": "Los Angeles",
         "state": "California"
      },
      {
         "building": "170 A, Acropolis Apt",
         "pincode": 456789,
         "city": "Chicago",
         "state": "Illinois"
      }]
} 

Data di atas disimpan dalam satu dokumen, Anda dapat lebih mudah mengakses dan memelihara data. Anda bisa query alamat pengguna:

>db.users.findOne({"name":"Tom Benzamin"},{"address":1})

Catatan:db query di atas menunjukkan database dan penggunadan koleksi.

Kerugian dari struktur data ini adalah bahwa jika pengguna dan mengatasi meningkatnya jumlah data menjadi lebih besar dan lebih besar, akan mempengaruhi membaca dan menulis kinerja.

hubungan tipe referensi

Jenis referensi hubungan sering digunakan dalam pendekatan desain database yang file data pengguna dan data file alamat pengguna secara terpisah untuk membangun hubungan dengan dokumen acuan bidangid.

{
   "_id":ObjectId("52ffc33cd85242f436000001"),
   "contact": "987654321",
   "dob": "01-01-1991",
   "name": "Tom Benzamin",
   "address_ids": [
      ObjectId("52ffc4a5d85242602e000000"),
      ObjectId("52ffc4a5d85242602e000001")
   ]
}

Contoh di atas,dokumen address_ids mengandung bidang obyek user id dari alamat pengguna (ObjectId) Array.

Kita bisa membaca benda-benda id alamat pengguna (ObjectId) untuk mendapatkan informasi rinci tentang alamat pengguna.

Metode ini membutuhkan dua pertanyaan, alamat pertama objek query id pengguna (ObjectId), alamat kedua untuk informasi lebih lanjut tentang permintaan pengguna dengan id.

>var result = db.users.findOne({"name":"Tom Benzamin"},{"address_ids":1})
>var addresses = db.address.find({"_id":{"$in":result["address_ids"]}})