#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
(если вы можете, вы можете назначить ресурс перед вставкой, и он должен работать)