我注意到FOSUserBundle没有创建任何索引。
我们应该像这样创建一个用户文档:
use FOS\UserBundle\Document\User as BaseUser;
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;
/**
* @MongoDB\Document
*/
class User extends BaseUser
{
/**
* @MongoDB\Id(strategy="auto")
*/
protected $id;
/*
public function __construct()
{
parent::__construct();
// your own logic
}
*/
}
那么如何添加一个索引来表示“电子邮件”字段?我应该只覆盖继承的属性吗?
答案 0 :(得分:1)
实际上FOSUserBundle会创建。你应该运行
php app \ console doctrine:mongodb:schema:update
创建它们。默认情况下,有usernameCanonical和emailCanonical索引。
如果您需要使用自定义索引this approach:
<?php
/**
* @MongoDB\Document
* @MongoDB\Indexes({
* @MongoDB\Index(keys={"email"="asc"})
* })
*/
class User extends BaseUser {
// ...
并且不要忘记再次运行 doctirne:mongodb:schema:update 任务。