2011-01-22 12 views
7

मान लिया जाये कि निम्नलिखित:दस्तावेज़ मोंगो-माणिक ड्राइवर का उपयोग कर अद्यतन?

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

मैं दोनों को फिर से लिखने विधि और परमाणु अद्यतन विधि का उपयोग कर दस्तावेज़ एक्स के लिए इसी अद्यतन करने के लिए कच्चे मोंगो-माणिक ड्राइवर का उपयोग कैसे कर सकते हैं? (http://api.mongodb.org/ruby/current/file.TUTORIAL.html#Updating_a_Document देखें)

उत्तर

10

अपने उदाहरण उत्पादन को देखते हुए, आप नए सिरे से लिखना विधि इसे इस तरह होगा उपयोग करना चाहते हैं:

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

या आप atomically एक मूल्य बदलना चाहते हैं, तो वह ऐसा होगा:

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

इस कामयाबी से काम करता है, धन्यवाद! –

+2

इसके अलावा, अगर आप एक से अधिक दस्तावेज़ को अपडेट करना चाहते: 'coll.update ({<खोज मापदंड>}, {" $ सेट "=> {}}, {: बहु => true})' बस सोचा मुझे लगता है कि के बाद से मैं इसे कहीं भी नहीं मिल सका जोड़ना होगा। – GoldfishGrenade