Only partially update objects (using $set and $unset) when updates occur...

Comments welcome! 
....

Note: this does not use ActiveModel::Dirty as ActiveModel::Dirty doesn't find in place changes (such as appending to an array or calling gsub! on a string).

Partial Updates can be turned on or off per class (by default they are on):

  class Person
    include MongoMapper::Document
    self.partial_updates = false
  end