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 ::
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ...] }
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.
Partager