DoctrineMongoDB:如何在文档中设置注释以存储特定结构?

时间:2013-07-27 09:43:48

标签: mongodb doctrine doctrine-odm doctrine-mongodb

我正在实现一个必须对此进行建模的php类:

/** @Document */
classMember {

    /** @String */
    protected $fname;

    /** @String */
    protected $lname;

    /** @String */
    protected $email;

    /** @Int */
    protected $cell;

    /** @String */
    protected $password;

    /** @Int */
    protected $gender;

    /** @Int */
    protected $loc = array();

    /** ????? */
    protected $info;
}

我希望信息字段能够保留此结构:

info Object
[
 contact ["phoneNumber1" , "phoneNumber2"] ,
 address ["USA, NY 8791 John St."] ,
 email ["my@domain.com", "me@site.info"]
]

我应该实现另一个info.php类吗?如果没有,我该如何实现呢? 谢谢你的帮助...

1 个答案:

答案 0 :(得分:0)

$info可能会使用Embed One映射。然后,您嵌入的类将具有contactaddressemail字段的映射。

如果contactemail真的打算分别容纳多个电话号码和电子邮件地址,那么我建议使用Collection映射,这是一个未映射值的任意数组。或者,这些可能是与PhoneNumber和Email对象的Embed Many关系,但这可能是不必要的开销,因为它需要存储单字段(我假设)对象的数组,而不是字符串数组。

我不确定为什么你将address字段表示为一个字符串数组,但这可以从一个地址对象的嵌入多个关系中受益。然后,地址将具有特定字段(例如,国家,省/州)。允许用户将其地址作为单个字符串输入可能很方便,但它使数据管理和验证成为一场噩梦。