Обновление Mongoid с оператором Positonal не работает

Я пытаюсь обновить встроенную коллекцию mongodb, используя оператор $ positional из ruby ​​mongoid, но он не работает. Ниже mongoid запрос

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

После еще нескольких копаний я обнаружил, что никакие mongodb-запросы не работают с mongoid update.inc, в том числе, простым запросом ниже

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

У кого-нибудь есть лучший способ выполнять запросы позиционного оператора с помощью mongoid?

РЕДАКТИРОВАТЬ

Но согласно официальной документации ruby-драйвера mongodb, это должно работать. ниже выдержки

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

1 ответ

Общая идея заключается в том, что вы должны перейти к драйверу ruby ​​(через коллекцию) и сделать это так:

Viewcounter.collection.update({"viewinfos.remote_ip" => "xxxx"}, {:$inc => {"viewinfos.$.viewcount" => 1}})
Другие вопросы по тегам