MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Начини за внедряване на версии на данни в MongoDB

Първият голям въпрос, когато се потопите в това, е "как искате да съхранявате набори от промени" ?

  1. Разлики?
  2. Цели копия на записи?

Моят личен подход би бил да съхранявам разликите. Тъй като показването на тези разлики е наистина специално действие, бих поставил разликите в различна колекция „история“.

Бих използвал различната колекция, за да спестя място в паметта. Обикновено не искате пълна история за проста заявка. Така че, като държите историята извън обекта, можете също да я държите извън често достъпната памет, когато тези данни са запитани.

За да улесня живота си, бих накарал исторически документ да съдържа речник на разликите с времеви печат. Нещо като това:

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

За да направя живота си наистина лесен, бих направил тази част от моите DataObjects (EntityWrapper, каквото и да е), които използвам за достъп до моите данни. Обикновено тези обекти имат някаква форма на история, така че можете лесно да замените save() метод, за да направите тази промяна едновременно.

АКТУАЛИЗИРАНЕ:2015-10

Изглежда, че вече има спецификация за обработка на JSON diff. Това изглежда като по-стабилен начин за съхраняване на разликите/промените.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Запитване с мангуста и дати

  2. MongoDB $pop

  3. Кога да Redis? Кога да MongoDB?

  4. MongoDB:как да анализирам дата във версия 3.6 mongoDb?

  5. Препратки към документ Mongoose с връзка „едно към много“.