ruby-on-rails - 查找和修改、获取数据、处理并保存 - Mongoid

标签 ruby-on-rails mongodb mongoid

我在 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/

相关文章:

ruby-on-rails - Mongoid::Document 是 GlobalID::ActiveJobs 的标识吗?

css - 错误 : File to import not found or unreadable: bootstrap-sprockets

linux - 更改 dbpath 后 Mongodb 2.6.11 无法启动 (centos 7)

ruby-on-rails - 为什么我的 Rspec 长度验证测试失败? (rails/guard/rspec)

mongodb - 为什么 ObjectId 使 MongoDB 中的分片更容易?

node.js - 返回 null 的 GraphQL 嵌套查询

mongodb - 如何在不先找到的情况下使用 Mongoid 执行批量更新?

ruby-on-rails - Rails Mongoid `pluck` 等效?

ruby-on-rails - SSL_connect returned=1 errno=0 state=SSLv3 读取服务器证书 B : certificate verify failed

ruby-on-rails - 如何 stub :where method in Rspec?