【问题标题】:Embedding documents in existing documents with the Ruby Driver for MongoDB使用 Ruby Driver for MongoDB 在现有文档中嵌入文档
【发布时间】:2011-10-20 14:52:37
【问题描述】:

我正在尝试使用 Ruby 驱动程序将文档嵌入到现有文档中。

这是我的主要文档的样子:

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 驱动程序以及嵌入式文档概念的理解,并且希望你能帮助我摆脱这个我似乎无法摆脱的湿纸袋;)

【问题讨论】:

    标签: ruby mongodb mongodb-ruby


    【解决方案1】:

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

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

    【讨论】:

    • 要不要让我得到批准?
    【解决方案2】:

    我想,你是不是想用资产“更新”new_project 记录

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-26
      • 2021-05-23
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      • 2018-08-21
      • 1970-01-01
      相关资源
      最近更新 更多