使用MongoDB的Ruby驱动程序在现有文档中嵌入文档

时间:2011-10-20 14:52:37

标签: ruby mongodb mongodb-ruby

我正在尝试使用Ruby Driver在现有文档中嵌入文档。

以下是我的主要文档:

db = Mongo::Connection.new.db("Portfolios")
project_collection = db.collection("Projects")
new_Project = { :url => 'http://www.tekfolio.me/billy/portfolio/focus', :author => 'Billy'}
project_collection.insert(new_Project)

在我创建new_project并将其添加到我的project_collection之后,我可能会或可能不会将另一个集合添加到以后称为资产的同一文档中。这就是我被困住的地方。以下代码似乎没有做任何事情:

new_asset = { :image_url => 'http://assets.tekfolio.me/portfolios/68fbb25a-8353-41a8-a779-4bd9762b00f2/projects/13/assets/20/focus2.PNG'}
new_Project.assest.insert(new_asset)

我确信我已经完成了对Mongodb和Ruby驱动程序以及嵌入式文档概念的理解,并感谢您的帮助,让我从这个看起来无法摆脱的湿纸袋中解脱出来;)

2 个答案:

答案 0 :(得分:1)

我认为,您是否尝试使用资产“更新”new_project记录

它不起作用,因为那时你只更新ruby中的哈希,而不是mongo,你必须首先获取mongo中对象的引用,更新它,然后保存它,检查这个信息:

http://www.mongodb.org/display/DOCS/Updating+Data+in+Mongo

(如果可以,您可以在插入之前分配资产,它应该有效)

答案 1 :(得分:1)

您是否尝试过设置不带插入的资产值而是使用更新?

new_Project["asset"] = new_asset
project_collection.update({"_id" => new_Project["_id"]}, new_Project)