module RocketJob::Plugins::Document
Base class for storing models in MongoDB
Private Instance Methods
find_and_update(attrs)
click to toggle source
Apply changes to this document returning the updated document from the database. Allows other changes to be made on the server that will be loaded.
# File lib/rocket_job/plugins/document.rb, line 32 def find_and_update(attrs) doc = collection.find(_id: id).find_one_and_update({"$set" => attrs}, return_document: :after) raise(::Mongoid::Errors::DocumentNotFound.new(self.class, id)) unless doc # Clear out keys that are not returned during the reload from MongoDB (fields.keys + embedded_relations.keys - doc.keys).each { |key| send("#{key}=", nil) } @attributes = doc apply_defaults self end