我是一个Doctrine的新手,正在尝试找出如何在嵌入多个属性中防止重复记录。我有一个像这样的嵌入文档:
<?
/**
* @EmbeddedDocument
*/
class Contact {
/**
* @Id
*/
private $id;
/**
* created timestamp
* @Date
*/
private $created;
/**
* modified timestamp
* @Date
*/
private $modified;
/**
* @String
*/
private $name;
/**
* @String
*/
private $name;
/**
* @String
*/
private $address;
}
我希望当我添加新联系人时,两个联系人可以有相同的姓名和地址,但是两个联系人不能同时拥有相同的姓名和地址。在检查重复时,Doctrine需要忽略$id、$created和$modified属性,因为它们几乎总是不同的。唯一的是所有其他字段的组合。如何使用Doctrine实现这一点?这个逻辑应该放在服务层还是Doctrine可以为我完成?
更新: 我接受安德鲁的答案是使用Mongo检查重复的正确方法,但我真的想知道Doctrine是否能够为我完成这项任务。因此,我开始了一个悬赏。