我在 Rails 应用程序中使用 Mongoid,发现一旦查找操作成功,我就可以使用 find_and_modify
命令来更新文档。
考虑文档结构下的集合User
- 姓名
- 积分
所以文档的保存方式如下
{ "_id" : "51a7420eb09de918204883c4", "name" : "balan", "points" : 1727 }
现在如何在获取记录后立即更新积分计数,有什么方法可以像下面那样执行
User.where(id: "51a7420eb09de918204883c4").find_and_modify( "$set" => { points: points + 1 } )
也就是说,系统应该获取存储的点并将其加 1,然后再次保存回来。
请提出建议。
最佳答案
感谢詹姆斯的链接。
找到解决办法了
User.where(id: "51a7420eb09de918204883c4").find_and_modify({ "$inc" => { points: 1 } })
根据 mongoid.org/en/mongoid/docs/querying.html – James Wahlin 的评论。
关于ruby-on-rails - 查找和修改、获取数据、处理并保存 - Mongoid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16836787/