Vc que precisa criar INDICES no Doctrine o processo é simples e fazemos isso nas annotations veja:
Usado dentro da annotation @Table sobre o nível de entidade de classe. Ele permite que a dica do SchemaTool para gerar um índice de banco de dados sobre as colunas da tabela especificada. Ela só tem sentido no contexto de geração de esquema SchemaTool.
Required attributes:
- name: Name of the Index
- columns: Array of columns.
Exemplo:
MongoDB ODM
<?php- namespace Documents;
- /** @Document */
- class User
- {
- /** @Id */
- public $id;
- /** @String @Index(unique=true, order="asc") */
- public $username;
- }
Criamos um indice no campo "username", veja um exemplo simples para criar multiplos indices.
- <?php
- /**
- * @Document
- * @Indexes({
- * @Index(keys={"accountId"="asc"}),
- * @Index(keys={"username"="asc"})
- * })
- */
- class User
- {
- /** @Id */
- public $id;
- /** @Integer */
- public $accountId;
- /** @String */
- public $username;
- }
Você pode especificar índices em entidades incorporadas como você faz em entidades normais. Quando o Doctrine cria os índices para uma entidade podera também criar os índices de suas entidades mapeadas;
- <?php
- namespace Documents;
- /** @Document */
- class BlogPost
- {
- // ...
- /** @Field(type="string") @Index */
- private $slug;
- /** @EmbedMany(targetDocument="Comment") */
- private $comments;
- }
Mais informações: http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/indexes.html#unique-index
Very practical and useful for my application, thanks
ResponderExcluir