我正在尝试用 Symfony 2.1 中的嵌入式文档序列化 MongoDB 文档。我正在使用 JMSserializer 和 Mongodb-odm 包。
我有以下文档实体。
// Blog
namespace App\DocumentBundle\Document;
use Symfony\Component\Validator\Constraints as Assert;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
use JMS\SerializerBundle\Annotation\Type;
/**
* @MongoDB\Document(repositoryClass="App\DocumentBundle\Repository\BlogRepository")
*/
class Blog {
/**
* @MongoDB\Id
*/
protected $id;
/**
* @MongoDB\String
* @Assert\NotBlank()
*/
protected $title;
/**
* @MongoDB\string
* @Assert\NotBlank()
*/
protected $blog;
/**
* @MongoDB\EmbedMany(targetDocument="Tag")
*/
private $tags;
/**
* @MongoDB\Timestamp
*/
protected $created;
/**
* @MongoDB\Timestamp
*/
protected $updated;
}
和
// Tag
namespace App\DocumentBundle\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
/**
* @MongoDB\EmbeddedDocument
*/
class Tag {
/**
* @MongoDB\String
*/
protected $name;
}
为 tag 属性生成了一个 ArrayCollection 类型,但 JMSSerializer 包不喜欢它。如果我将标签更改为 @MongoDB\String 并重新生成博客文档,则会发生序列化,但不会使用 @MongoDB\EmbedMany(targetDocument="Tag") 集。
我是否需要指定一些 JMSSerializer 注释属性允许嵌入文档也被序列化?