MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Perbedaan antara basis data berbasis Dokumen dan Basis Data Kunci/Nilai?

Perbedaan utama adalah model data dan kemampuan kueri.

Penyimpanan nilai kunci

Tipe pertama sangat sederhana dan mungkin tidak memerlukan penjelasan lebih lanjut.

Model data:lebih dari penyimpanan nilai kunci

Meskipun ada beberapa perdebatan tentang nama yang benar untuk database seperti Cassandra, saya ingin menyebutnya toko keluarga kolom . Meskipun pasangan nilai kunci adalah bagian penting dari Cassandra, itu tidak terbatas pada itu saja. Ini memungkinkan Anda untuk menyarangkan pasangan nilai kunci, sehingga kunci dapat merujuk ke beberapa pasangan sub-nilai kunci.

Anda tidak dapat menyarangkan pasangan nilai kunci tanpa batas waktu. Anda terbatas pada tiga tingkat (keluarga kolom) atau empat tingkat bersarang (keluarga kolom super). Jika istilah keluarga kolom tidak membunyikan lonceng, lihat WTF adalah artikel SuperColumn, ini adalah penjelasan yang bagus tentang model data Cassandra.

Database dokumen , seperti CouchDB dan MongoDB menyimpan seluruh dokumen dalam bentuk objek JSON. Anda dapat menganggap objek ini sebagai pasangan nilai kunci bersarang. Tidak seperti Cassandra, Anda dapat menyarangkan pasangan nilai kunci sebanyak yang Anda inginkan. JSON juga mendukung array dan memahami tipe data yang berbeda, seperti string, angka, dan nilai boolean.

Membuat kueri

Saya percaya toko kolom-keluarga hanya dapat ditanyakan dengan kunci, atau dengan menulis fungsi pengurangan peta. Anda tidak dapat menanyakan nilai seperti yang Anda lakukan di database SQL. Jika aplikasi Anda membutuhkan kueri yang lebih kompleks, aplikasi Anda harus membuat dan memelihara indeks untuk mengakses data yang diinginkan.

Basis data dokumen mendukung kueri dengan fungsi kunci dan pengurangan peta juga, tetapi juga memungkinkan Anda melakukan kueri dasar berdasarkan nilai, seperti "Beri saya semua pengguna dengan lebih dari 10 posting". Database dokumen lebih fleksibel dengan cara ini.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Meteor menggunakan ambil atau temukan di fungsi pembantu templat?

  2. mongodb:Struktur pengindeksan multikey?

  3. MongoDB:Temukan elemen minimum dalam array dan hapus itu

  4. Lakukan sesuatu jika tidak ada yang ditemukan dengan .find() luwak

  5. Memulai dengan Driver MongoDB Go