Встраивание документов в существующие документы с помощью драйвера Ruby для MongoDB - PullRequest
1 голос
/ 20 октября 2011

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

1 голос
/ 21 октября 2011

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

new_Project["asset"] = new_asset
project_collection.update({"_id" => new_Project["_id"]}, new_Project)
1 голос
/ 20 октября 2011

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

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

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

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

...