2011-01-22 17 views
7

Suponiendo lo siguiente:¿Actualizaciones de documentos usando mongo-ruby-driver?

irb> x 
irb> => {"_id"=> 123456, "welcome"=>"Hi!", "welcome2" => "Enjoy your stay!"} 
irb> coll.class 
irb> => Mongo::Collection 

¿Cómo puedo usar el mongo-rubí en bruto controlador para actualizar el documento correspondiente a x utilizando tanto el método de reescritura y el método de actualización atómica? (Ver http://api.mongodb.org/ruby/current/file.TUTORIAL.html#Updating_a_Document)

Respuesta

10

dada su salida de ejemplo, si desea utilizar el método de reescritura que sería como esto:

coll.update({"_id" => x["_id"]}, x) 

o si desea cambiar atómicamente un valor, sería la siguiente:

coll.update({"_id" => x["_id"]}, {"$set" => {"welcome" => "Hello There"}}) 
+0

Esto funciona maravillosamente, gracias! –

+2

Además, si desea actualizar varios documentos: 'coll.update ({}, { "$ set"=> {}}, {: multi => true})' acaba de ocurrir Agregaría eso ya que no pude encontrarlo en ningún lado. – GoldfishGrenade

Cuestiones relacionadas