Мне нужно, когда я добавляю новый документ в свою коллекцию X, чтобы получить последний документ, который был вставлен в эту же коллекцию, потому что некоторые значения этого документа должны влиять на документ, который я сейчас вставляю.
В основномв качестве простого примера мне нужно сделать это:
class X
include Mongoid::Document
include Mongoid::Timestamps
before_save :set_sum
def set_sum
self.sum = X.last.sum + self.misc
end
field :sum, :type => Integer
field :misc, :type => Integer
end
Как я могу убедиться, что тип процесса никогда не сломается, если есть одновременная вставка?Я должен убедиться, что когда self.sum = X.last.sum + self.misc
рассчитывается, что X.last.sum
абсолютно соответствует последнему возможному документу, вставленному в коллекцию?
Это очень важно для моей системы.Он должен быть потокобезопасным.
Alex
ps: это также должно быть быстродействующим, когда в коллекциях содержится 50 тыс. Документов, для получения последнего значения может не потребоваться время...