映射 - Symfony2中的Mongodb嵌入式文档

时间:2015-11-20 08:42:46

标签: php mongodb symfony doctrine-orm doctrine

我正在尝试使用MongoDB在Symfony2中添加映射信息,如下所示: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 我想我的情况将是“嵌入许多”,但并没有真正得到它的工作原理?

有人可以试着解释它是如何运作的吗?

谢谢

1 个答案:

答案 0 :(得分:1)

我会这样做:

/** @EmbedMany(targetDocument="PurshaedItem") */
    private $purshaedItems = array();

假设您有另一个名为PurshaedItem的文档类(也许是PurchasedItem)。

目标文档将如下映射:

/**
 * @MongoDB\EmbeddedDocument
 */
class PurchasedItem
{
  // whatever properties ...
}

如果您想查询嵌入式文档,可以在控制器中获取(推荐),这是我的简单example

为了在树枝模板中获取它,这是另一个example

示例来自简单的Symfony博客应用程序。有3个文件:帖子,标签和评论。 Post将标签和注释作为嵌入属性。看看代码,很简单。 如果答案对您有用,请单击接受。