2015-11-01 55 views
0

我有愚蠢的,簡單的一塊紅寶石以下/蒙戈代碼中的一個問題:蒙戈/ Ruby的未定義的方法'更新」 ::收藏

require 'mongo' 

client = Mongo::Client.new(['127.0.0.1:27017'], database: 'dbs') 
items = client[:items].find('issues.category': 'general') 

items.each do |item| 
    item2 = item 
    client[:items].update({ '_id': item['_id'] } , item2) 
end 

我得到undefined method "update" for #<Mongo::Collection:0x4544580 namespace=dbs.items> (NoMethodError)

回答

1

沒有update MongoDB rub​​y​​驅動程序的方法,有update_oneupdate_many

在你的情況下,它看起來像你想更新所有:

client[:items].update_many({ :id => item['_id'] }, item2) 

見文檔here

+0

你是100%正確的,工作的,謝謝。 但在這 - https://github.com/mongodb/mongo-ruby-driver/wiki/Tutorial#updating-documents-with-update教程我用那裏只有'更新'方法,這使我困惑了 – Vla

+0

這是混亂! – Anthony