使用mongo-ruby-driver文档更新?

Phi*_*ach 7 ruby ruby-on-rails mongodb nosql mongodb-ruby

假设如下:

irb> x
irb> => {"_id"=> 123456, "welcome"=>"Hi!", "welcome2" => "Enjoy your stay!"}
irb> coll.class
irb> => Mongo::Collection
Run Code Online (Sandbox Code Playgroud)

如何使用原始mongo-ruby-driver通过使用重写方法和原子更新方法更新与x对应的文档?(见http://api.mongodb.org/ruby/current/file.TUTORIAL.html#Updating_a_Document)

小智 10

给出你的示例输出,如果你想使用重写方法,它将是这样的:

coll.update({"_id" => x["_id"]}, x)
Run Code Online (Sandbox Code Playgroud)

或者如果你想原子地改变一个值,它将是这样的:

coll.update({"_id" => x["_id"]}, {"$set" => {"welcome" => "Hello There"}})
Run Code Online (Sandbox Code Playgroud)

  • 另外,如果你想更新多个文件:`coll.update({<search criteria>},{"$ set"=> {<update>}},{:multi => true})`刚认为我是补充一点,因为我无法在任何地方找到它. (2认同)