Я пытаюсь добавить информацию о сопоставлении в Symfony2 с помощью MongoDB, как показано здесь: http://symfony.com/doc/current/bundles/DoctrineMongoDBBundle/index.html [в разделе «Добавление информации»] Но то, что я хочу сделать, это добавьте вложенные документы. Вот часть моего документа со встроенными документами:
"_id" : "", "last_name" :, "first_name" : "", "address" : [ { "Street" : "", "City" : "", "Zip_Code" : "", "Country": "" } ], "company" : "" "purshaed_items" : [ { "items_id" : "", "category":"", "price":"", "date_of_purshae" } ]
Итак, вы можете видеть, что у меня есть поля «Адрес» и «Purshaed_items», которые являются встроенными документами. Я нашел эту ссылку http://doctrine-orm.readthedocs.org/projects/doctrine-mongodb-odm/en/latest/reference/embedded-mapping.html Я предполагаю, что моим делом будет «Вставить много», но didn ' действительно ли получается, как это работает?
Может кто-нибудь попробует объяснить, как это работает?
спасибо
Я бы сделал так:
/** @EmbedMany(targetDocument="PurshaedItem") */ private $purshaedItems = array();
Предположим, что у вас есть другой класс документа с именем PurshaedItem (возможно, BuyasedItem).
И целевой документ будет отображаться следующим образом:
/** * @MongoDB\EmbeddedDocument */ class PurchasedItem { // whatever properties ... }
И если вы хотите запросить встроенные документы, вы можете получить их в контроллере (рекомендуется), вот мой простой пример .
Для получения этого в шаблоне ветви, вот еще один пример .
Примеры из простого приложения блога Symfony. Есть 3 документа: почта, тег и комментарий. Post имеет теги и комментарии как встроенные свойства. Посмотрите вокруг кода, это просто. Если ответ был полезен для вас, нажмите, чтобы принять его.