我正在尝试使用 $ 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/