[mongoDB & Doctrine] Unicité des entrées sur plusieurs champs
Bonjour,
Je cherche à faire une chose simple, du moins le pensais-je, à savoir : m'assurer de l'unicité d'une entrée/Document dans ma base MongoDB.
Pourtant, et je parcours leS documentationS en long en large et en travers, je ne trouve pas comment réaliser cela.
> A la base, je cherchais une simple @annotation qui me permettrait de m'assurer de l'unicité d'une entrée en base se basant sur plusieurs champs du Document.
Malheureusement, j'en suis à une 30aine d'onglets ouverts (sans compter ceux déjà fermés) et ne sais même plus si je dois le faire via mongoDB ou via Doctrine ni même si je cherche une @annotation ou autre chose...
Mon soucis ::
J'ai un simple Document ::
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
/**
* @MongoDB\Document(repositoryClass=".../EventRepository")
**/
class Event{
/**
* @MongoDB\Id
*/
protected $id;
/**
* @var string
* @MongoDB\Field(type="string")
*/
protected $userId;
/**
* @var \DateTime
* @MongoDB\Field(type="date")
*/
protected $date;
/**
* @var string
* @MongoDB\Field(type="string")
*/
protected $moment;
public _construct(string userId, \DateTime $date , string $moment){
$this->date = $date;
$this->moment = $moment;
$this->userId = $userId;
}
[... getters/setters ...]
} |
Cela sert à enregistrer des inscriptions à des événements donc, et l'unicité repose sur tous les champs puisqu'un utilisateur peut s'inscrire à 1 ou plusieurs événements le même jour.
Je cherche simplement à éviter plusieurs inscriptions au même événement.
J'aimerais éviter la requête en amont "findBy()" et si size == 0 alors insertion en bdd sinon c'est qu'on a déjà une entrée.
Je suis sûr qu'il existe une façon plus "sexy" et surtout plus propre de réaliser cela,
Des idées svp ?
D'avance merci.