在我的项目中,我正在使用文档"问题"在设置问题的类别并在我的数据库中清除没有任何更改后引用(很多到另一个文档"类别") 有我的代码
$dm = $this->getDocumentManager();
$question = $this->getDocumentManager()->getRepository('ATS\QuizzBundle\Document\Question')->findOneByQuestion("a?");
$category = $this->getDocumentManager()->getRepository('ATS\QuizzBundle\Document\Category')->findOneByLabel("Logic");
$question->addCategory($category);
$dm->flush();
我的数据库没有变化,任何人都可以帮忙吗? 这是我在问题文件中的映射:
/**
*@MongoDB\ReferenceMany(targetDocument="Category")
*/
protected $category
答案 0 :(得分:1)
根据您的ChangeTrackingPolicy,您可能需要在刷新之前保留问题。
$dm->persist($question);
$dm->flush();
通过持久化实体,您可以确保实体中的任何更改都在UnitOfWork中注册。使用flush,您可以将这些操作发送到数据库。
Persist不会直接导致对数据库的查询,因为您可能希望持久化很多实体。因此,在文档管理器上调用flush之前,所有操作都会被“缓冲”。