1

ruby mongoidの$positional演算子を使用してmongodb埋め込みコレクションを更新しようとしていますが、機能していません。Mongoidクエリの下

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

さらに掘り下げた後、mongodbクエリがmongoidupdateで機能しないことがわかりました。以下の簡単なクエリを含む

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

mongoidを使用して位置演算子クエリを実行するためのより良い方法を誰かが持っていますか?

編集

しかし、mongodbの公式ルビードライバーのドキュメントによると、これは機能するはずです。抜粋の下

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

1 に答える 1

4

一般的な考え方は、(コレクションを介して)rubyドライバーにドロップダウンし、次のようにすることです。

Viewcounter.collection.update({"viewinfos.remote_ip" => "xxxx"}, {:$inc => {"viewinfos.$.viewcount" => 1}})
于 2011-12-12T14:39:24.170 に答える