我有一个简单的选择和更新逻辑的问题:
task = Task.queueing.where(conditions).order(:created_at.asc).first
if task
task.set(:status=>2)
end
很简单吧?
但是,问题是:同时有 100 多个请求。这么多客户得到了相同的记录,这就是我不想要的。
在 mysql 中,我可以做这样的事情来避免重复加载:
rnd_str = 10000000 * rand
Task.update(status:rnd_str).limit(1) # this may be wrong code
task = Task.where(status:rnd_str).first
task.set(status:2)
render :json=>task
但是如何在 mongomapper 中使用 QUERY 更新 1 条记录?
谢谢 !