我在我的Rails應用程序中使用Mongoid,發現只要找到操作成功,我就可以使用find_and_modify
命令更新文檔。查找並修改,獲取數據,處理數據並保存 - Mongoid
考慮集合User
下面的文檔結構
- 名
- 點
所以文檔保存像
{ "_id" : "51a7420eb09de918204883c4", "name" : "balan", "points" : 1727 }
現在我要如何更新點作爲計數一旦我取得記錄,是否有任何方法可以做到低
User.where(id: "51a7420eb09de918204883c4").find_and_modify("$set" => { points: points + 1 })
即,系統應該獲取存儲的點並將其增加1並將其保存回去。
請建議。
嘗試使用$ inc爲此。在這個頁面上有一個使用$ inc進行更新的例子:http://mongoid.org/en/mongoid/docs/querying.html –
你不需要find_and_modify。更新會做你想做的事情(找到文件,更新它)。 find_and_modify是當你需要文件然後原子返回給你。 –