Symfony MongoDB Doctrine использует неправильную коллекцию для сохранения документов - PullRequest
0 голосов
/ 24 декабря 2018

Я использую Symfony mongoDB Doctrine.

У меня есть такой документ:

namespace AppBundle\Document;

use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB;

/**
 * Class RateLimit
 *
 * @MongoDB\Document(collection="rate_limits", repositoryClass="AppBundle\Repository\RateLimitRepository")
 */
class RateLimit
{
    /**
     * @var int $id
     *
     * @MongoDB\Id()
     */
    private $id;

    /**
     * @var int $requests
     *
     * @MongoDB\Field(type="integer")
     */
    private $requests;

    /**
     * @var string $ip
     *
     * @MongoDB\Field(type="integer")
     */
    private $ip;
// and more code

Вот код репозитория:

public function save(RateLimit $limit)
    {
        $this->dm->persist($limit);
        $this->dm->flush($limit);
    }

Когда я пытаюсьсохранить этот документ он не собирается вставлять в rate_limits коллекции.В профиле я вижу:

db.tags.find({ "ip": "127.0.0.1" }).limit(1);
db.tags.insert({ "0000000051b4e83e0000000026f8bb13": { "_id": ObjectId("5c20ff7ce155c42b626a6edc"), "requests": 1, "timeout": 1545666488 } });

Это правильный запрос, но коллекция должна быть rate_limits.Почему коллекция tags?Что я делаю не так?

...