Встраивание документов в существующие документы с помощью драйвера Ruby для MongoDB
Я пытаюсь встроить документ в существующий документ с помощью драйвера 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 и концепции встраиваемого документа и был бы признателен за вашу помощь, чтобы вытащить меня из этого мокрого бумажного пакета, из которого я не могу выйти;)
2 ответа
Вы пытались просто установить значение актива без вставки и вместо этого использовать обновление?
new_Project["asset"] = new_asset
project_collection.update({"_id" => new_Project["_id"]}, new_Project)
Я думаю, вы пытаетесь "обновить" запись new_project с активом
это не работает, потому что тогда вы обновляете хеш только в ruby, а не в mongo, вы должны сначала получить ссылку на объект в mongo, обновить его, а затем сохранить, проверить эту информацию:
http://www.mongodb.org/display/DOCS/Updating+Data+in+Mongo
(если вы можете, вы можете назначить ресурс перед вставкой, и он должен работать)