0
我在更新mongodb中的嵌入式文檔時出現問題。
我有以下情況。 用戶模型的地址爲嵌入式文檔。
我能夠將地址嵌入到父模型,即;用戶模型,但我仍然無法弄清楚如何更新地址嵌入,即使我有嵌入地址的_id
用mongoid更新嵌入式文檔mongodb
請幫
感謝
我在更新mongodb中的嵌入式文檔時出現問題。
我有以下情況。 用戶模型的地址爲嵌入式文檔。
我能夠將地址嵌入到父模型,即;用戶模型,但我仍然無法弄清楚如何更新地址嵌入,即使我有嵌入地址的_id
用mongoid更新嵌入式文檔mongodb
請幫
感謝
你必須檢索父嵌入文檔,然後進行更新操作,例如:
address = user.address
address.update_attributes(:street => "foo")
還有另一種解決方案。如果Person和Preference類之間存在多對多關係,那麼:
ruby-1.9.2-p0 > Person.count
=> 0
ruby-1.9.2-p0 > Preference.count
=> 0
ruby-1.9.2-p0 > person = Person.create
=> #< Person _id: 4cd353e92b58af214b000006, preference_ids: []>
ruby-1.9.2-p0 > pref = Preference.create
=> #< Preference _id: 4cd353ee2b58af214b000007, person_ids: [], name: nil>
ruby-1.9.2-p0 >
ruby-1.9.2-p0 > person.preferences << pref
=> true
ruby-1.9.2-p0 > Preference.first.people.count
=> 1
ruby-1.9.2-p0 > Person.first.preferences.count
=> 1
ruby-1.9.2-p0 >
ruby-1.9.2-p0 > person.preferences.first.name = 'foobar'
=> "foobar"
ruby-1.9.2-p0 > person.preferences.first.save
=> true
ruby-1.9.2-p0 > pref.reload
=> #< Preference _id: 4cd353ee2b58af214b000007, person_ids: [BSON::ObjectId('4cd353e92b58af214b000006')], name: "foobar">
ruby-1.9.2-p0 > pref.name
=> "foobar"
感謝您的回覆jpemberthy, 但這仍然不適用於我。 我可以在我的開發日誌中清楚地看到像這樣 project_name_development ['people']。update({「_ id」=> BSON :: ObjectID('4c5106b6f1936f036c000008'),「address._id」=>「4c5106b6f1936f036c000006」},{ 「$ set」=> {「address.city」=>「bhaktapur」,「address.province」=>「kathmandu」}}) 我認爲應該更新地址。 我有「address.update_attributes(address_attribute)」在我的人模型,其中address_attribute是地址 我思念的東西散? – Gagan 2010-07-29 04:45:58
我不確定當時會發生什麼,如果你願意,請將控制檯流程和模型代碼粘貼到要點中,以便幫助你。 – jpemberthy 2010-07-29 14:10:12
感謝您的回覆。我發現我的模型有錯誤,所以沒有更新。再次感謝 – Gagan 2010-08-02 07:21:28