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

Mongoid::Versioning - как да проверя предишни версии?

Модулът Mongoid::Versioning добавя към документа поле с име версия от тип Integer, това поле записва версията на текущия документ, започвайки от 1, до максимума (ако е дефиниран). Освен това ще имате вградени "версии" на документи, които ще бъдат създадени. След това има обратно извикване before_save, което се грижи за версиите вместо вас.

Като цяло бих препоръчал максимум, но това зависи от вас. От гледна точка на това как да стигнете до тях, добре, че не сте дали примерен документ, така че нека да разгледаме една много проста статия като пример:

#Make an empty post, just a title, version 1
post = Post.create(:title => "Hello World")
# Now add some "content" and save, version 2
post.content = "Woo - content"
post.save

Това ще ни даде документ нещо подобно:

{
  "title": "Hello World",
  "content": "Woo - content",
  "comments": [
  ]
  "version": 2
  "versions": [
    { "title": "Hello World", "version": 1 }
  ]
}

Сега просто трябва да използвате стандартните си механизми за намиране, за да стигнете до него:

post = Post.find(:first, :conditions => {:title => "Hello World"})

Вземете най-новата версия от това и след това можете програмно да търсите предишни версии. Бих публикувал резултат, но в момента нямам настроена проба.

По същия начин трябва само да изпълните db.namespace.find() въз основа на полетата за заглавие, версия, ако искате да го направите чрез обвивката.

Надяваме се, че има смисъл.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb Агрегиране на редове към колони

  2. Премахване на записи в масив, съдържащи празен масив

  3. mongodb разлика remove() срещу findOneAndDelete() срещу deleteOne()

  4. Проверка дали полето съдържа низ

  5. MongoDB - Развийте масив с помощта на агрегиране и премахнете дубликатите