我需要在集合X中添加新文檔以獲取插入同一集合中的最後一個文檔,因爲該文檔的某些值必須影響我當前插入的文檔。Rails一個MongoDB,如何獲取插入的最後一個文檔並確保它是線程安全的?
基本上作爲一個簡單的例子,我需要做的是:
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
絕對代表插入到集合中的最後一個可能的文檔?
這對我的系統很重要。它需要是線程安全的。
亞歷
PS:這也需要高性能,當有藏品50K文件,它不能。如果你需要保持需要時間來獲得最後的值...
感謝tonio,你搖滾:)我會盡快挖掘 – Alex 2011-06-01 17:57:57