Встраивание документов в существующие документы с помощью драйвера Ruby для MongoDB

#ruby #mongodb #mongodb-ruby

#ruby #mongodb #mongodb-ruby

Вопрос:

Я пытаюсь встроить документ в существующий документ, используя драйвер 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)
  

После того, как я создал my new_project и добавил его в my project_collection , я могу или не могу добавить другую коллекцию в тот же документ, который позже будет называться assets. Вот где я застрял. Следующий код, похоже, ничего не делает:

 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 и концепции встроенного документа и был бы признателен за вашу помощь, чтобы вытащить меня из этого мокрого бумажного пакета, из которого я, похоже, не могу выбраться 😉

Ответ №1:

Вы пробовали просто установить значение asset без insert и вместо этого использовать update?

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

Комментарии:

1. Как насчет того, чтобы подключить меня к утверждению?

Ответ №2:

Я думаю, вы пытаетесь «обновить» запись new_project с помощью ресурса

это не работает, потому что тогда вы обновляете хэш только в ruby, а не в mongo, вам нужно сначала получить ссылку на объект в mongo, обновить его, а затем сохранить, проверьте эту информацию:

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

(если вы можете, вы можете назначить ресурс перед вставкой, и он должен работать)