ruby-on-rails - 带有位置运算符的 Mongoid 更新不起作用

标签 ruby-on-rails ruby mongodb mongoid positional-operator

我正在尝试使用 $ positional operator 更新 mongodb 嵌入式集合来自 ruby​​ mongoid,但它不起作用。在 mongoid 查询下面

Viewcounter.collection.update({:item_id=>BSON::ObjectId('yyyy'),'viewinfos.remote_ip' => 'xxxx'},{'$inc' => {'viewinfos.$.viewcount' => 1}})

经过更多挖掘后,我发现没有 mongodb 查询适用于 mongoid 更新。包括下面的简单查询

Item.collection.update({'_id' =>BSON::ObjectId('sss')},{:isused => false})

有没有人有更好的方法来使用 mongoid 进行位置运算符查询?

编辑

但根据 mongodb official ruby driver documentation ,这应该有效。摘录下方

coll.update({"_id" => doc["_id"]}, {"$set" => {"name" => "MongoDB Ruby"}})

最佳答案

一般的想法是你会下降到 ruby​​ 驱动程序(通过集合)并像这样做:

Viewcounter.collection.update({"viewinfos.remote_ip" => "xxxx"}, {:$inc => {"viewinfos.$.viewcount" => 1}})

关于ruby-on-rails - 带有位置运算符的 Mongoid 更新不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8456069/

相关文章:

javascript - Mongodb mongoose - 如果字段不存在,如何将文档添加到数组

java - Java保留时间的差异(以毫秒为单位)

ruby-on-rails - Rails Activerecord 多个表包括

ruby - 在 Ruby 中获得 Lisp 风格加法 (+ *args) 的最简单方法是什么?

ruby-on-rails - 验证用户! Api 版本控制轨后方法不起作用

ruby - 在 rails 之外使用 rails 方法

ruby - 与 Excel 数据一起使用以显示在 Dashing Dashboard 上吗?

database - Mongodb 4 oplog 中的 t 是什么意思?

ruby-on-rails - 使用 Sanitize gem 自定义自关闭标签

ruby-on-rails - Ruby on Rails - Bullet/N+1