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

Cara menerapkan versi data di MongoDB

Pertanyaan besar pertama saat menyelami hal ini adalah "bagaimana Anda ingin menyimpan set perubahan" ?

  1. Berbeda?
  2. Seluruh salinan rekaman?

Pendekatan pribadi saya adalah menyimpan perbedaan. Karena tampilan diff ini benar-benar tindakan khusus, saya akan menempatkan diff dalam koleksi "sejarah" yang berbeda.

Saya akan menggunakan koleksi yang berbeda untuk menghemat ruang memori. Anda biasanya tidak menginginkan riwayat lengkap untuk kueri sederhana. Jadi, dengan menjauhkan riwayat dari objek, Anda juga dapat menyimpannya dari memori yang biasa diakses saat data tersebut dikueri.

Untuk mempermudah hidup saya, saya akan membuat dokumen sejarah yang berisi kamus perbedaan waktu. Sesuatu seperti ini:

{
    _id : "id of address book record",
    changes : { 
                1234567 : { "city" : "Omaha", "state" : "Nebraska" },
                1234568 : { "city" : "Kansas City", "state" : "Missouri" }
               }
}

Untuk membuat hidup saya sangat mudah, saya akan membuat bagian dari DataObjects saya (EntityWrapper, apa pun) yang saya gunakan untuk mengakses data saya. Umumnya objek ini memiliki beberapa bentuk histori, sehingga Anda dapat dengan mudah mengganti save() metode untuk membuat perubahan ini pada saat yang sama.

PERBARUI:2015-10

Sepertinya sekarang ada spesifikasi untuk menangani perbedaan JSON. Ini sepertinya cara yang lebih kuat untuk menyimpan perbedaan/perubahan.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tutup koneksi luwak dengan benar setelah Anda selesai

  2. Bagaimana cara meratakan subdokumen ke tingkat root di MongoDB?

  3. Praktik Terbaik untuk Menjalankan MongoDB dalam Cluster

  4. Mongod mengeluh bahwa tidak ada folder /data/db

  5. 4 Cara Mendaftar Koleksi dalam Basis Data MongoDB