如何使用更新倍数持久化MongoDB Doctrine

时间:2016-05-12 18:33:28

标签: php mongodb doctrine

我在使用mongodb更新的数据时遇到了一些问题。我希望能够使用新数据,但看起来在这个过程中有一些缓存可以继续使用旧数据。

这是我更新文件的方式:

$this->dm->createQueryBuilder(Event::class)
            ->update()
            ->multiple(true)
            ->field('account')->equals($account->getId())
            ->field('tracker')->in($trackers)
            ->field('first')->set(false)
            ->field('groupId')->set($groupId)
            ->getQuery()->execute();

        $this->flush();

如果我直接检查数据库,我可以看到那里的更新做得很好。但是,如果我尝试从同一个进程访问此数据。 (例如,获取文档的groupId)我仍然得到旧的。

如何让我的脚本使用更新的文档?

我正在使用symfony2,mongodb和php5.6

感谢。

1 个答案:

答案 0 :(得分:1)

我找到了解决方案,在flush()之后添加了这一行:

$this->dm->getUnitOfWork()->clear(Event::class);