我在使用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
感谢。
答案 0 :(得分:1)
我找到了解决方案,在flush()之后添加了这一行:
$this->dm->getUnitOfWork()->clear(Event::class);